דוגמאות אינטגרציה ל-SMTP
הקדמה
מדריך זה מספק דוגמאות מפורטות כיצד להשתלב עם שירות ה-SMTP של Forward Email באמצעות שפות תכנות, מסגרות עבודה ולקוחות דואר שונים. שירות ה-SMTP שלנו מתוכנן להיות אמין, מאובטח וקל לשילוב עם היישומים הקיימים שלך.
איך מעבד שירות ה-SMTP של Forward Email
לפני שנצלול לדוגמאות האינטגרציה, חשוב להבין כיצד שירות ה-SMTP שלנו מעבד מיילים:
תור דואר ומערכת ניסיון חוזר
כאשר אתה שולח מייל דרך SMTP לשרתים שלנו:
- עיבוד ראשוני: המייל מאומת, נסרק לאיתור תוכנות זדוניות ונבדק מול מסנני ספאם
- תור חכם: המיילים מונחים במערכת תורים מתוחכמת למשלוח
- מנגנון ניסיון חוזר חכם: אם המשלוח נכשל זמנית, המערכת שלנו ת:
- תנתח את תגובת השגיאה באמצעות הפונקציה
getBounceInfo - תקבע אם הבעיה זמנית (למשל, "נסה שוב מאוחר יותר", "נדחה זמנית") או קבועה (למשל, "משתמש לא ידוע")
- עבור בעיות זמניות, תסמן את המייל לניסיון חוזר
- עבור בעיות קבועות, תיצור הודעת החזרה (bounce)
- תנתח את תגובת השגיאה באמצעות הפונקציה
- תקופת ניסיון חוזר של 5 ימים: אנו מנסים שוב את המשלוח עד 5 ימים (בדומה לסטנדרטים בתעשייה כמו Postfix), כדי לתת זמן לבעיות זמניות להיפתר
- הודעות סטטוס משלוח: השולחים מקבלים הודעות על מצב המיילים שלהם (נשלח, מתעכב או הוחזר)
Note
לאחר משלוח מוצלח, תוכן המייל היוצא דרך SMTP נמחק לאחר תקופת שמירה שניתנת להגדרה (ברירת מחדל 30 יום) לשם אבטחה ופרטיות. נשאר רק הודעת מיקום המציינת משלוח מוצלח.
מוגן מפני טעויות לשם אמינות
המערכת שלנו מתוכננת להתמודד עם מקרים שונים:
- אם זוהה רשימת חסימה, המייל יישלח שוב אוטומטית
- אם מתרחשות בעיות רשת, המשלוח ינסה שוב
- אם תיבת הדואר של הנמען מלאה, המערכת תנסה שוב מאוחר יותר
- אם השרת המקבל אינו זמין זמנית, נמשיך לנסות
גישה זו משפרת משמעותית את שיעורי המשלוח תוך שמירה על פרטיות ואבטחה.
אינטגרציה עם 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());
// הגדרת טרנספורטר של דואר אלקטרוני
const transporter = nodemailer.createTransport({
host: 'smtp.forwardemail.net',
port: 465,
secure: true,
auth: {
user: 'your-username@your-domain.com',
pass: 'your-password'
}
});
// נקודת קצה API לשליחת מיילים
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}`);
});
אינטגרציה עם Python
שימוש ב-smtplib
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# הגדרות דואר אלקטרוני
sender_email = "your-username@your-domain.com"
receiver_email = "recipient@example.com"
password = "your-password"
# יצירת ההודעה
message = MIMEMultipart("alternative")
message["Subject"] = "Hello from Forward Email"
message["From"] = sender_email
message["To"] = receiver_email
# יצירת גרסאות הטקסט וה-HTML של ההודעה
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>"
# המרת הטקסט וה-HTML לאובייקטים מסוג MIMEText
part1 = MIMEText(text, "plain")
part2 = MIMEText(html, "html")
# הוספת חלקי HTML וטקסט להודעה מסוג MIMEMultipart
message.attach(part1)
message.attach(part2)
# שליחת המייל
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_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'
לאחר מכן שלח מיילים ב-views שלך:
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 {
// הגדרות שרת
$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;
// נמענים
$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');
// תוכן
$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}"
לאחר מכן שלח מיילים באמצעות הפאצ' של Mail ב-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 'האימייל נשלח בהצלחה!';
}
}
אינטגרציה עם Ruby
שימוש ב-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 'שלום מ-Forward Email'
text_part do
body 'שלום עולם! זהו מייל בדיקה שנשלח באמצעות Ruby Mail ו-Forward Email SMTP.'
end
html_part do
content_type 'text/html; charset=UTF-8'
body '<b>שלום עולם!</b> זהו מייל בדיקה שנשלח באמצעות Ruby Mail ו-Forward Email SMTP.'
end
end
mail.deliver!
puts "האימייל נשלח בהצלחה!"
אינטגרציה עם Java
שימוש ב-JavaMail API
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
public class SendEmail {
public static void main(String[] args) {
// אימייל וסיסמה של השולח
final String username = "your-username@your-domain.com";
final String password = "your-password";
// מאפייני שרת SMTP
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");
// יצירת סשן עם מאמת
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
// יצירת ההודעה
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(username));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recipient@example.com"));
message.setSubject("שלום מ-Forward Email");
// יצירת הודעה מרובת חלקים
Multipart multipart = new MimeMultipart("alternative");
// חלק טקסט
BodyPart textPart = new MimeBodyPart();
textPart.setText("שלום עולם! זהו מייל בדיקה שנשלח באמצעות JavaMail ו-Forward Email SMTP.");
// חלק HTML
BodyPart htmlPart = new MimeBodyPart();
htmlPart.setContent("<b>שלום עולם!</b> זהו מייל בדיקה שנשלח באמצעות JavaMail ו-Forward Email SMTP.", "text/html");
// הוספת החלקים למולטיפארט
multipart.addBodyPart(textPart);
multipart.addBodyPart(htmlPart);
// הגדרת התוכן
message.setContent(multipart);
// שליחת ההודעה
Transport.send(message);
System.out.println("האימייל נשלח בהצלחה!");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
הגדרת לקוח דואר אלקטרוני
Thunderbird
- פתח את Thunderbird ועבור להגדרות חשבון
- לחץ על "Account Actions" ובחר "Add Mail Account"
- הזן את שמך, כתובת האימייל והסיסמה שלך
- לחץ על "Manual Config" והזן את הפרטים הבאים:
- שרת נכנס:
- IMAP: imap.forwardemail.net, פורט: 993, SSL/TLS
- POP3: pop3.forwardemail.net, פורט: 995, SSL/TLS
- שרת יוצא (SMTP): smtp.forwardemail.net, פורט: 465, SSL/TLS
- אימות: סיסמה רגילה
- שם משתמש: כתובת האימייל המלאה שלך
- שרת נכנס:
- לחץ על "Test" ואז על "Done"
Apple Mail
- פתח את Mail ועבור אל Mail > Preferences > Accounts
- לחץ על כפתור "+" להוספת חשבון חדש
- בחר "Other Mail Account" ולחץ על "Continue"
- הזן את שמך, כתובת האימייל והסיסמה שלך, ואז לחץ על "Sign In"
- כאשר ההגדרה האוטומטית נכשלת, הזן את הפרטים הבאים:
- שרת דואר נכנס: imap.forwardemail.net (או pop3.forwardemail.net עבור POP3)
- שרת דואר יוצא: smtp.forwardemail.net
- שם משתמש: כתובת האימייל המלאה שלך
- סיסמה: הסיסמה שלך
- לחץ על "Sign In" להשלמת ההגדרה
Gmail (Send Mail As)
- פתח את Gmail ועבור אל Settings > Accounts and Import
- תחת "Send mail as", לחץ על "Add another email address"
- הזן את שמך וכתובת האימייל שלך, ואז לחץ על "Next Step"
- הזן את פרטי שרת ה-SMTP הבאים:
- שרת SMTP: smtp.forwardemail.net
- פורט: 465
- שם משתמש: כתובת האימייל המלאה שלך
- סיסמה: הסיסמה שלך
- בחר "Secured connection using SSL"
- לחץ על "Add Account" ואמת את כתובת האימייל שלך
פתרון בעיות
בעיות נפוצות ופתרונות
-
אימות נכשל
- ודא את שם המשתמש (כתובת האימייל המלאה) והסיסמה שלך
- ודא שאתה משתמש בפורט הנכון (465 עבור SSL/TLS)
- בדוק אם החשבון שלך מאפשר גישה ל-SMTP
-
פסק זמן בחיבור
- בדוק את חיבור האינטרנט שלך
- ודא שהגדרות חומת האש אינן חוסמות תעבורת SMTP
- נסה להשתמש בפורט 465 עם SSL/TLS (מומלץ) או פורט 587 עם STARTTLS
-
הודעה נדחתה
- ודא שכתובת "From" תואמת את האימייל המאומת שלך
- בדוק אם כתובת ה-IP שלך ברשימה שחורה
- ודא שתוכן ההודעה שלך אינו מפעיל מסנני דואר זבל
-
שגיאות TLS/SSL
- עדכן את האפליקציה/ספרייה שלך לתמיכה בגרסאות TLS מודרניות
- ודא שתעודות ה-CA של המערכת מעודכנות
- נסה TLS מפורש במקום TLS מרומז
קבלת עזרה
אם נתקלת בבעיות שלא נכללו כאן, אנא:
- בדוק את דף השאלות הנפוצות שלנו לשאלות נפוצות
- עיין ב-פוסט הבלוג שלנו על משלוח דואר למידע מפורט
- פנה לצוות התמיכה שלנו בכתובת support@forwardemail.net
משאבים נוספים
סיכום
שירות ה-SMTP של Forward Email מספק דרך אמינה, מאובטחת וממוקדת פרטיות לשליחת מיילים מהאפליקציות ולקוחות הדואר שלך. עם מערכת התורים החכמה שלנו, מנגנון ניסיון חוזר למשך 5 ימים, והתראות סטטוס משלוח מקיפות, תוכל להיות בטוח שהאימיילים שלך יגיעו ליעדם.
לשימושים מתקדמים יותר או אינטגרציות מותאמות אישית, אנא פנה לצוות התמיכה שלנו.