דוגמאות לשילוב SMTP
הקדמה
מדריך זה מספק דוגמאות מפורטות כיצד לשלב עם שירות ה-SMTP של Forward Email באמצעות שפות תכנות, מסגרות ולקוחות דוא"ל שונים. שירות ה-SMTP שלנו נועד להיות אמין, מאובטח וקל לשילוב עם היישומים הקיימים שלך.
כיצד פועל עיבוד ה-SMTP של העברת דוא"ל
לפני שנצלול לדוגמאות האינטגרציה, חשוב להבין כיצד שירות ה-SMTP שלנו מעבד מיילים:
מערכת תור דוא"ל וניסיון חוזר
כאשר אתה שולח דוא"ל באמצעות SMTP לשרתים שלנו:
- עיבוד ראשוני: האימייל מאומת, נסרק לאיתור תוכנות זדוניות ונבדק מול מסנני דואר זבל.
- תור חכם: אימיילים מוצבים במערכת תור מתוחכמת למשלוח.
- מנגנון ניסיון חוזר חכם: אם המסירה נכשלת באופן זמני, המערכת שלנו:
- תנתח את תגובת השגיאה באמצעות הפונקציה
getBounceInfo
שלנו. - תקבע אם הבעיה זמנית (למשל, "נסה שוב מאוחר יותר", "נדחה זמנית") או קבועה (למשל, "משתמש לא ידוע").
- עבור בעיות זמניות, סמן את האימייל לניסיון חוזר.
- עבור בעיות קבועות, צור הודעת החזרה.
- תקופת ניסיון חוזר של 5 ימים: אנו מנסים לשלוח שוב עד 5 ימים (בדומה לתקני התעשייה כמו Postfix), ונותנים לבעיות זמניות זמן לפתרון.
- הודעות סטטוס מסירה: שולחים מקבלים התראות על סטטוס האימיילים שלהם (נמסרו, התעכבו או הוחזרו).
Note
לאחר מסירה מוצלחת, תוכן דוא"ל SMTP יוצא מוסר לאחר תקופת שמירה הניתנת להגדרה (ברירת מחדל 30 יום) למטרות אבטחה ופרטיות. נותרת רק הודעת placeholder המציינת מסירה מוצלחת.
הוכחה לאמינות באמצעות דמה
המערכת שלנו מתוכננת להתמודד עם מגוון מקרי קצה:
- אם מזוהה רשימת חסימה, ייעשה ניסיון חוזר אוטומטי של שליחת האימייל
- אם יתרחשו בעיות רשת, ייעשה ניסיון חוזר למשלוח
- אם תיבת הדואר של הנמען מלאה, המערכת תנסה שוב מאוחר יותר
- אם שרת המקבל אינו זמין באופן זמני, נמשיך לנסות
גישה זו משפרת משמעותית את שיעורי המסירה תוך שמירה על פרטיות ואבטחה.
שילוב Node.js
שימוש ב-Nodemailer
Nodemailer הוא מודול פופולרי לשליחת מיילים מיישומי Node.js.
const nodemailer = require('nodemailer');
// Create a transporter object
const transporter = nodemailer.createTransport({
host: 'smtp.forwardemail.net',
port: 465,
secure: true, // Use TLS
auth: {
user: 'your-username@your-domain.com',
pass: 'your-password'
}
});
// Send mail with defined transport object
async function sendEmail() {
try {
const info = await transporter.sendMail({
from: '"Your Name" <your-username@your-domain.com>',
to: 'recipient@example.com',
subject: 'Hello from Forward Email',
text: 'Hello world! This is a test email sent using Nodemailer and Forward Email SMTP.',
html: '<b>Hello world!</b> This is a test email sent using Nodemailer and Forward Email SMTP.'
});
console.log('Message sent: %s', info.messageId);
} catch (error) {
console.error('Error sending email:', error);
}
}
sendEmail();
שימוש ב-Express.js
כך ניתן לשלב Forward Email SMTP עם יישום Express.js:
const express = require('express');
const nodemailer = require('nodemailer');
const app = express();
const port = 3000;
app.use(express.json());
// Configure email transporter
const transporter = nodemailer.createTransport({
host: 'smtp.forwardemail.net',
port: 465,
secure: true,
auth: {
user: 'your-username@your-domain.com',
pass: 'your-password'
}
});
// API endpoint for sending emails
app.post('/send-email', async (req, res) => {
const { to, subject, text, html } = req.body;
try {
const info = await transporter.sendMail({
from: '"Your App" <your-username@your-domain.com>',
to,
subject,
text,
html
});
res.status(200).json({
success: true,
messageId: info.messageId
});
} catch (error) {
console.error('Error sending email:', error);
res.status(500).json({
success: false,
error: error.message
});
}
});
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});
אינטגרציה של פייתון
שימוש ב-smtplib
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# Email configuration
sender_email = "your-username@your-domain.com"
receiver_email = "recipient@example.com"
password = "your-password"
# Create message
message = MIMEMultipart("alternative")
message["Subject"] = "Hello from Forward Email"
message["From"] = sender_email
message["To"] = receiver_email
# Create the plain-text and HTML version of your message
text = "Hello world! This is a test email sent using Python and Forward Email SMTP."
html = "<html><body><b>Hello world!</b> This is a test email sent using Python and Forward Email SMTP.</body></html>"
# Turn these into plain/html MIMEText objects
part1 = MIMEText(text, "plain")
part2 = MIMEText(html, "html")
# Add HTML/plain-text parts to MIMEMultipart message
message.attach(part1)
message.attach(part2)
# Send email
try:
server = smtplib.SMTP_SSL("smtp.forwardemail.net", 465)
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message.as_string())
server.quit()
print("Email sent successfully!")
except Exception as e:
print(f"Error sending email: {e}")
שימוש ב-Django
עבור יישומי Django, הוסף את הפרטים הבאים ל-settings.py
שלך:
# Email settings
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.forwardemail.net'
EMAIL_PORT = 465
EMAIL_USE_SSL = True
EMAIL_HOST_USER = 'your-username@your-domain.com'
EMAIL_HOST_PASSWORD = 'your-password'
DEFAULT_FROM_EMAIL = 'your-username@your-domain.com'
לאחר מכן שלח מיילים בתצוגות שלך:
from django.core.mail import send_mail
def send_email_view(request):
send_mail(
'Subject here',
'Here is the message.',
'from@your-domain.com',
['to@example.com'],
fail_silently=False,
html_message='<b>Here is the HTML message.</b>'
)
return HttpResponse('Email sent!')
אינטגרציית PHP
שימוש ב-PHPMailer
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'vendor/autoload.php';
$mail = new PHPMailer(true);
try {
// Server settings
$mail->isSMTP();
$mail->Host = 'smtp.forwardemail.net';
$mail->SMTPAuth = true;
$mail->Username = 'your-username@your-domain.com';
$mail->Password = 'your-password';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
$mail->Port = 465;
// Recipients
$mail->setFrom('your-username@your-domain.com', 'Your Name');
$mail->addAddress('recipient@example.com', 'Recipient Name');
$mail->addReplyTo('your-username@your-domain.com', 'Your Name');
// Content
$mail->isHTML(true);
$mail->Subject = 'Hello from Forward Email';
$mail->Body = '<b>Hello world!</b> This is a test email sent using PHPMailer and Forward Email SMTP.';
$mail->AltBody = 'Hello world! This is a test email sent using PHPMailer and Forward Email SMTP.';
$mail->send();
echo 'Message has been sent';
} catch (Exception $e) {
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}
שימוש ב-Laravel
עבור יישומי Laravel, עדכנו את קובץ .env
שלכם:
MAIL_MAILER=smtp
MAIL_HOST=smtp.forwardemail.net
MAIL_PORT=465
MAIL_USERNAME=your-username@your-domain.com
MAIL_PASSWORD=your-password
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=your-username@your-domain.com
MAIL_FROM_NAME="${APP_NAME}"
לאחר מכן, שלחו מיילים באמצעות חזית הדואר של Laravel:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
use App\Mail\WelcomeEmail;
class EmailController extends Controller
{
public function sendEmail()
{
Mail::to('recipient@example.com')->send(new WelcomeEmail());
return 'Email sent successfully!';
}
}
אינטגרציה של רובי
שימוש ב-Ruby Mail Gem
require 'mail'
Mail.defaults do
delivery_method :smtp, {
address: 'smtp.forwardemail.net',
port: 465,
domain: 'your-domain.com',
user_name: 'your-username@your-domain.com',
password: 'your-password',
authentication: 'plain',
enable_starttls_auto: true,
ssl: true
}
end
mail = Mail.new do
from 'your-username@your-domain.com'
to 'recipient@example.com'
subject 'Hello from Forward Email'
text_part do
body 'Hello world! This is a test email sent using Ruby Mail and Forward Email SMTP.'
end
html_part do
content_type 'text/html; charset=UTF-8'
body '<b>Hello world!</b> This is a test email sent using Ruby Mail and Forward Email SMTP.'
end
end
mail.deliver!
puts "Email sent successfully!"
אינטגרציית ג'אווה
שימוש ב-API של JavaMail
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
public class SendEmail {
public static void main(String[] args) {
// Sender's email and password
final String username = "your-username@your-domain.com";
final String password = "your-password";
// SMTP server properties
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.forwardemail.net");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
// Create session with authenticator
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
// Create message
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(username));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recipient@example.com"));
message.setSubject("Hello from Forward Email");
// Create multipart message
Multipart multipart = new MimeMultipart("alternative");
// Text part
BodyPart textPart = new MimeBodyPart();
textPart.setText("Hello world! This is a test email sent using JavaMail and Forward Email SMTP.");
// HTML part
BodyPart htmlPart = new MimeBodyPart();
htmlPart.setContent("<b>Hello world!</b> This is a test email sent using JavaMail and Forward Email SMTP.", "text/html");
// Add parts to multipart
multipart.addBodyPart(textPart);
multipart.addBodyPart(htmlPart);
// Set content
message.setContent(multipart);
// Send message
Transport.send(message);
System.out.println("Email sent successfully!");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
תצורת לקוח דוא"ל
ת'אנדרבירד
- פתחו את Thunderbird ועברו להגדרות חשבון
- לחצו על "פעולות חשבון" ובחרו "הוספת חשבון דואר"
- הזינו את שמכם, כתובת הדוא"ל והסיסמה שלכם
- לחצו על "הגדרה ידנית" והזינו את הפרטים הבאים:
- שרת נכנס:
- IMAP: imap.forwardemail.net, יציאה: 993, SSL/TLS
- POP3: pop3.forwardemail.net, יציאה: 995, SSL/TLS
- שרת יוצא (SMTP): smtp.forwardemail.net, יציאה: 465, SSL/TLS
- אימות: סיסמה רגילה
- שם משתמש: כתובת הדוא"ל המלאה שלכם
- לחצו על "בדיקה" ולאחר מכן על "סיום"
אפל מייל
- פתחו את דואר ועברו אל דואר > העדפות > חשבונות
- לחצו על כפתור "+" כדי להוסיף חשבון חדש
- בחרו "חשבון דואר אחר" ולחצו על "המשך"
- הזינו את שמכם, כתובת הדוא"ל והסיסמה שלכם, ולאחר מכן לחצו על "כניסה"
- כאשר ההתקנה האוטומטית נכשלת, הזינו את הפרטים הבאים:
- שרת דואר נכנס: imap.forwardemail.net (או pop3.forwardemail.net עבור POP3)
- שרת דואר יוצא: smtp.forwardemail.net
- שם משתמש: כתובת הדוא"ל המלאה שלכם
- סיסמה: הסיסמה שלכם
- לחצו על "כניסה" כדי להשלים את ההתקנה
ג'ימייל (שלח דואר בשם)
- פתחו את Gmail ועברו אל הגדרות > חשבונות וייבוא.
- תחת "שלח דואר בשם", לחצו על "הוסיפו כתובת דוא"ל נוספת".
- הזינו את שמכם וכתובת הדוא"ל שלכם, ולאחר מכן לחצו על "השלב הבא".
- הזינו את פרטי שרת ה-SMTP הבאים:
- שרת SMTP: smtp.forwardemail.net
- פורט: 465
- שם משתמש: כתובת הדוא"ל המלאה שלכם.
- סיסמה: הסיסמה שלכם.
- בחרו "חיבור מאובטח באמצעות SSL".
- לחצו על "הוסיפו חשבון" ואמתו את כתובת הדוא"ל שלכם.
פתרון בעיות
בעיות נפוצות ופתרונות
- האימות נכשל
- אמת את שם המשתמש (כתובת הדוא"ל המלאה) והסיסמה שלך
- ודא שאתה משתמש בפורט הנכון (465 עבור SSL/TLS)
- בדוק אם גישת SMTP מופעלת בחשבון שלך
- פסק זמן לחיבור
- בדוק את חיבור האינטרנט שלך
- ודא שהגדרות חומת האש אינן חוסמות תעבורת SMTP
- נסה להשתמש בפורט אחר (587 עם STARTTLS)
- הודעה נדחתה
- ודא שכתובת ה"מאת" שלך תואמת את כתובת הדוא"ל המאומתת שלך
- בדוק אם כתובת ה-IP שלך נמצאת ברשימה שחורה
- ודא שתוכן ההודעה שלך אינו מפעיל מסנני דואר זבל
- שגיאות TLS/SSL
- עדכן את האפליקציה/ספרייה שלך לתמיכה בגרסאות TLS מודרניות
- ודא שאישורי CA של המערכת שלך מעודכנים
- נסה TLS מפורש במקום TLS מרומז
קבלת עזרה
אם נתקלת בבעיות שלא מכוסות כאן, אנא:
- בדוק את ה-דף שאלות נפוצות שלנו לשאלות נפוצות
- עיין ב-פוסט בבלוג על משלוח דוא"ל שלנו למידע מפורט
- צור קשר עם צוות התמיכה שלנו בכתובת support@forwardemail.net
משאבים נוספים
מסקנה
שירות ה-SMTP של Forward Email מספק דרך אמינה, מאובטחת וממוקדת פרטיות לשליחת דוא"ל מהיישומים ולקוחות הדוא"ל שלך. בעזרת מערכת התורים החכמה שלנו, מנגנון ניסיון חוזר תוך 5 ימים והודעות מקיפות על סטטוס המסירה, אתה יכול להיות בטוח שהדוא"ל שלך יגיע ליעדו.
עבור מקרי שימוש מתקדמים יותר או אינטגרציות מותאמות אישית, אנא צרו קשר עם צוות התמיכה שלנו.