Приклади інтеграції SMTP

У цьому посібнику наведено докладні приклади інтеграції зі службою SMTP Forward Email за допомогою різних мов програмування, фреймворків і поштових клієнтів. Наш SMTP-сервіс розроблено таким чином, щоб бути надійним, безпечним і легким для інтеграції з наявними програмами.

Перш ніж заглиблюватися в приклади інтеграції, важливо зрозуміти, як наша служба SMTP обробляє електронні листи:

Система черги електронної пошти та повторних спроб

Коли ви надсилаєте електронний лист через SMTP на наші сервери:

  1. Початкова обробка: електронний лист перевіряється на наявність зловмисного програмного забезпечення та перевіряється на спам-фільтри
  2. Розумна черга: електронні листи поміщаються в складну систему черги для доставки
  3. Інтелектуальний механізм повторної спроби: Якщо доставка тимчасово не вдається, наша система:
    • Проаналізуйте відповідь на помилку за допомогою нашого getBounceInfo функція
    • Визначте, чи є проблема тимчасовою (наприклад, «спробуйте пізніше», «тимчасово відкладено») чи постійною (наприклад, «користувач невідомий»)
    • Якщо виникають тимчасові проблеми, позначте електронний лист для повторної спроби
    • Для постійних проблем створіть сповіщення про відмову
  4. 5-денний період повторної спроби: Ми повторюємо спробу доставки протягом 5 днів (подібно до галузевих стандартів, як-от Postfix), даючи час для вирішення тимчасових проблем
  5. Сповіщення про статус доставки: Відправники отримують сповіщення про статус своїх електронних листів (доставлено, із затримкою або відхилено)

[!ПРИМІТКА] Після успішної доставки вміст вихідної електронної пошти SMTP редагується після настроюваного періоду зберігання (за замовчуванням 30 днів) для безпеки та конфіденційності. Залишається лише повідомлення-заповнювач, яке вказує на успішну доставку.

Захищений від манекена для надійності

Наша система розроблена для обробки різних крайніх випадків:

  • Якщо буде виявлено блокований список, спробу надсилання електронної пошти буде автоматично повторно
  • Якщо виникнуть проблеми з мережею, доставка буде повторена
  • Якщо поштова скринька одержувача заповнена, система повторить спробу пізніше
  • Якщо сервер-одержувач тимчасово недоступний, ми продовжимо спроби

Цей підхід значно покращує швидкість доставки, зберігаючи конфіденційність і безпеку.

Використання 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}); });

Використання 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!')

Використання 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    = '&#x3C;b>Hello world!&#x3C;/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 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!"

Використання 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("&#x3C;b>Hello world!&#x3C;/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]
  1. Відкрийте Thunderbird і перейдіть до Параметрів облікового запису
  2. Натисніть «Дії облікового запису» та виберіть «Додати обліковий запис електронної пошти».
  3. Введіть своє ім'я, адресу електронної пошти та пароль
  4. Натисніть «Налаштування вручну» та введіть такі дані:
    • Сервер вхідної пошти:
      • IMAP: imap.forwardemail.net, порт: 993, SSL/TLS
      • POP3: pop3.forwardemail.net, порт: 995, SSL/TLS
    • Сервер вихідної пошти (SMTP): smtp.forwardemail.net, порт: 465, SSL/TLS
    • Автентифікація: звичайний пароль
    • Ім'я користувача: ваша повна електронна адреса
  5. Натисніть «Тестувати», а потім «Готово»

Apple Mail

  1. Відкрийте програму «Пошта» та перейдіть до «Пошта» > «Параметри» > «Облікові записи».
  2. Натисніть кнопку «+», щоб додати новий обліковий запис
  3. Виберіть «Інший обліковий запис електронної пошти» та натисніть «Продовжити»
  4. Введіть своє ім’я, адресу електронної пошти та пароль, а потім натисніть «Увійти»
  5. Якщо автоматичне налаштування не вдається, введіть такі дані:
    • Сервер вхідної пошти: imap.forwardemail.net (або pop3.forwardemail.net для POP3)
    • Сервер вихідної пошти: smtp.forwardemail.net
    • Ім'я користувача: ваша повна електронна адреса
    • Пароль: ваш пароль
  6. Натисніть «Увійти», щоб завершити налаштування

Gmail (надсилати пошту як)

  1. Відкрийте Gmail і перейдіть до Налаштування > Облікові записи та імпорт
  2. У розділі «Надіслати лист як» натисніть «Додати іншу адресу електронної пошти».
  3. Введіть своє ім’я та адресу електронної пошти, а потім натисніть «Наступний крок»
  4. Введіть такі дані сервера SMTP:
    • Сервер SMTP: smtp.forwardemail.net
    • Порт: 465
    • Ім'я користувача: ваша повна електронна адреса
    • Пароль: ваш пароль
    • Виберіть «Захищене з’єднання за допомогою SSL»
  5. Натисніть «Додати обліковий запис» і підтвердьте свою електронну адресу

Поширені проблеми та рішення

  1. Помилка автентифікації

    • Підтвердьте своє ім’я користувача (повну електронну адресу) і пароль
    • Переконайтеся, що ви використовуєте правильний порт (465 для SSL/TLS)
    • Перевірте, чи ввімкнено доступ SMTP у вашому обліковому записі
  2. Час очікування підключення

    • Перевірте підключення до Інтернету
    • Переконайтеся, що налаштування брандмауера не блокують трафік SMTP
    • Спробуйте використати інший порт (587 із STARTTLS)
  3. Повідомлення відхилено

    • Переконайтеся, що ваша адреса "Від" збігається з вашою автентифікованою електронною адресою
    • Перевірте, чи є ваша IP у чорному списку
    • Переконайтеся, що вміст вашого повідомлення не запускає фільтри спаму
  4. Помилки TLS/SSL

    • Оновіть програму/бібліотеку для підтримки сучасних версій TLS
    • Переконайтеся, що сертифікати ЦС вашої системи актуальні
    • Спробуйте явний TLS замість неявного TLS

Отримання допомоги

Якщо ви зіткнулися з проблемами, не розглянутими тут, будь ласка:

  1. Перевірте наш Сторінка поширених запитань для поширених питань
  2. Перегляньте наш повідомлення в блозі про доставку електронною поштою для отримання детальної інформації
  3. Зверніться до нашої служби підтримки за адресою support@forwardemail.net

Служба SMTP Forward Email забезпечує надійний, безпечний і орієнтований на конфіденційність спосіб надсилання електронних листів із ваших програм і поштових клієнтів. Завдяки нашій інтелектуальній системі черги, 5-денному механізму повторних спроб і повним сповіщенням про стан доставки ви можете бути впевнені, що ваші електронні листи дістануться до місця призначення.

Щоб отримати більш розширені варіанти використання або користувацьку інтеграцію, зверніться до нашої служби підтримки.