- Сторінка пошуку
- Зміст
Приклади інтеграції SMTP
Передмова
У цьому посібнику наведено докладні приклади інтеграції зі службою SMTP Forward Email за допомогою різних мов програмування, фреймворків і поштових клієнтів. Наш SMTP-сервіс розроблено таким чином, щоб бути надійним, безпечним і легким для інтеграції з наявними програмами.
Як працює SMTP-обробка пересилання електронної пошти
Перш ніж заглиблюватися в приклади інтеграції, важливо зрозуміти, як наша служба SMTP обробляє електронні листи:
Система черги електронної пошти та повторних спроб
Коли ви надсилаєте електронний лист через SMTP на наші сервери:
- Початкова обробка: електронний лист перевіряється на наявність зловмисного програмного забезпечення та перевіряється на спам-фільтри
- Розумна черга: електронні листи поміщаються в складну систему черги для доставки
- Інтелектуальний механізм повторної спроби: Якщо доставка тимчасово не вдається, наша система:
- Проаналізуйте відповідь на помилку за допомогою нашого
getBounceInfo
функція - Визначте, чи є проблема тимчасовою (наприклад, «спробуйте пізніше», «тимчасово відкладено») чи постійною (наприклад, «користувач невідомий»)
- Якщо виникають тимчасові проблеми, позначте електронний лист для повторної спроби
- Для постійних проблем створіть сповіщення про відмову
- Проаналізуйте відповідь на помилку за допомогою нашого
- 5-денний період повторної спроби: Ми повторюємо спробу доставки протягом 5 днів (подібно до галузевих стандартів, як-от Postfix), даючи час для вирішення тимчасових проблем
- Сповіщення про статус доставки: Відправники отримують сповіщення про статус своїх електронних листів (доставлено, із затримкою або відхилено)
[!ПРИМІТКА] Після успішної доставки вміст вихідної електронної пошти SMTP редагується після настроюваного періоду зберігання (за замовчуванням 30 днів) для безпеки та конфіденційності. Залишається лише повідомлення-заповнювач, яке вказує на успішну доставку.
Захищений від манекена для надійності
Наша система розроблена для обробки різних крайніх випадків:
- Якщо буде виявлено блокований список, спробу надсилання електронної пошти буде автоматично повторно
- Якщо виникнуть проблеми з мережею, доставка буде повторена
- Якщо поштова скринька одержувача заповнена, система повторить спробу пізніше
- Якщо сервер-одержувач тимчасово недоступний, ми продовжимо спроби
Цей підхід значно покращує швидкість доставки, зберігаючи конфіденційність і безпеку.
Інтеграція Node.js
Використання 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
Ось як інтегрувати 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}
);
});
Інтеграція Python
Використання smtplib
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
Email configurationsender_email = "your-username@your-domain.com"
receiver_email = "recipient@example.com"
password = "your-password"
Create messagemessage = 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 messagetext = "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 objectspart1 = MIMEText(text, "plain")
part2 = MIMEText(html, "html")
Add HTML/plain-text parts to MIMEMultipart messagemessage.attach(part1)
message.attach(part2)
Send emailtry:
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 Mail:
<?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
Використання 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!"
Інтеграція Java
Використання JavaMail API
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
flowchart TD
A[Open Thunderbird] --> B[Account Settings]
B --> C[Account Actions]
C --> D[Add Mail Account]
D --> E[Enter Name, Email, Password]
E --> F[Manual Config]
F --> G[Enter Server Details]
G --> H[SMTP: smtp.forwardemail.net]
H --> I[Port: 465]
I --> J[Connection: SSL/TLS]
J --> K[Authentication: Normal Password]
K --> L[Username: full email address]
L --> M[Test and Create Account]
- Відкрийте Thunderbird і перейдіть до Параметрів облікового запису
- Натисніть «Дії облікового запису» та виберіть «Додати обліковий запис електронної пошти».
- Введіть своє ім'я, адресу електронної пошти та пароль
- Натисніть «Налаштування вручну» та введіть такі дані:
- Сервер вхідної пошти:
- IMAP: imap.forwardemail.net, порт: 993, SSL/TLS
- POP3: pop3.forwardemail.net, порт: 995, SSL/TLS
- Сервер вихідної пошти (SMTP): smtp.forwardemail.net, порт: 465, SSL/TLS
- Автентифікація: звичайний пароль
- Ім'я користувача: ваша повна електронна адреса
- Сервер вхідної пошти:
- Натисніть «Тестувати», а потім «Готово»
Apple Mail
- Відкрийте програму «Пошта» та перейдіть до «Пошта» > «Параметри» > «Облікові записи».
- Натисніть кнопку «+», щоб додати новий обліковий запис
- Виберіть «Інший обліковий запис електронної пошти» та натисніть «Продовжити»
- Введіть своє ім’я, адресу електронної пошти та пароль, а потім натисніть «Увійти»
- Якщо автоматичне налаштування не вдається, введіть такі дані:
- Сервер вхідної пошти: imap.forwardemail.net (або pop3.forwardemail.net для POP3)
- Сервер вихідної пошти: smtp.forwardemail.net
- Ім'я користувача: ваша повна електронна адреса
- Пароль: ваш пароль
- Натисніть «Увійти», щоб завершити налаштування
Gmail (надсилати пошту як)
- Відкрийте Gmail і перейдіть до Налаштування > Облікові записи та імпорт
- У розділі «Надіслати лист як» натисніть «Додати іншу адресу електронної пошти».
- Введіть своє ім’я та адресу електронної пошти, а потім натисніть «Наступний крок»
- Введіть такі дані сервера SMTP:
- Сервер SMTP: smtp.forwardemail.net
- Порт: 465
- Ім'я користувача: ваша повна електронна адреса
- Пароль: ваш пароль
- Виберіть «Захищене з’єднання за допомогою SSL»
- Натисніть «Додати обліковий запис» і підтвердьте свою електронну адресу
Усунення несправностей
Поширені проблеми та рішення
-
Помилка автентифікації
- Підтвердьте своє ім’я користувача (повну електронну адресу) і пароль
- Переконайтеся, що ви використовуєте правильний порт (465 для SSL/TLS)
- Перевірте, чи ввімкнено доступ SMTP у вашому обліковому записі
-
Час очікування підключення
- Перевірте підключення до Інтернету
- Переконайтеся, що налаштування брандмауера не блокують трафік SMTP
- Спробуйте використати інший порт (587 із STARTTLS)
-
Повідомлення відхилено
- Переконайтеся, що ваша адреса "Від" збігається з вашою автентифікованою електронною адресою
- Перевірте, чи є ваша IP у чорному списку
- Переконайтеся, що вміст вашого повідомлення не запускає фільтри спаму
-
Помилки TLS/SSL
- Оновіть програму/бібліотеку для підтримки сучасних версій TLS
- Переконайтеся, що сертифікати ЦС вашої системи актуальні
- Спробуйте явний TLS замість неявного TLS
Отримання допомоги
Якщо ви зіткнулися з проблемами, не розглянутими тут, будь ласка:
- Перевірте наш Сторінка поширених запитань для поширених питань
- Перегляньте наш повідомлення в блозі про доставку електронною поштою для отримання детальної інформації
- Зверніться до нашої служби підтримки за адресою support@forwardemail.net
Додаткові ресурси
Висновок
Служба SMTP Forward Email забезпечує надійний, безпечний і орієнтований на конфіденційність спосіб надсилання електронних листів із ваших програм і поштових клієнтів. Завдяки нашій інтелектуальній системі черги, 5-денному механізму повторних спроб і повним сповіщенням про стан доставки ви можете бути впевнені, що ваші електронні листи дістануться до місця призначення.
Щоб отримати більш розширені варіанти використання або користувацьку інтеграцію, зверніться до нашої служби підтримки.