Contoh Integrasi SMTP

Panduan ini menyediakan contoh terperinci tentang cara mengintegrasikan dengan layanan SMTP Forward Email menggunakan berbagai bahasa pemrograman, kerangka kerja, dan klien email. Layanan SMTP kami dirancang agar dapat diandalkan, aman, dan mudah diintegrasikan dengan aplikasi Anda yang sudah ada.

Sebelum menyelami contoh integrasi, penting untuk memahami bagaimana layanan SMTP kami memproses email:

Sistem Antrean dan Coba Ulang Email

Ketika Anda mengirimkan email melalui SMTP ke server kami:

  1. Pemrosesan Awal: Email divalidasi, dipindai untuk mengetahui malware, dan diperiksa terhadap filter spam
  2. Antrean Cerdas: Email ditempatkan dalam sistem antrian yang canggih untuk pengiriman
  3. Mekanisme Percobaan Ulang Cerdas:Jika pengiriman gagal sementara, sistem kami akan:
    • Menganalisis respons kesalahan menggunakan getBounceInfo fungsi
    • Tentukan apakah masalahnya bersifat sementara (misalnya, "coba lagi nanti", "ditunda sementara") atau permanen (misalnya, "pengguna tidak dikenal")
    • Untuk masalah sementara, tandai email untuk dicoba lagi
    • Untuk masalah permanen, buat pemberitahuan pantulan
  4. Periode Coba Ulang 5 Hari: Kami mencoba pengiriman ulang hingga 5 hari (mirip dengan standar industri seperti Postfix), memberikan waktu bagi masalah sementara untuk diselesaikan
  5. Pemberitahuan Status Pengiriman:Pengirim menerima pemberitahuan tentang status email mereka (terkirim, tertunda, atau terkirim)

[!CATATAN] Setelah pengiriman berhasil, konten email SMTP keluar akan dihapus setelah periode penyimpanan yang dapat dikonfigurasi (default 30 hari) demi keamanan dan privasi. Hanya pesan pengganti yang tersisa yang menunjukkan pengiriman berhasil.

Diuji Keandalannya

Sistem kami dirancang untuk menangani berbagai kasus ekstrem:

  • Jika daftar blokir terdeteksi, email akan dicoba lagi secara otomatis
  • Jika terjadi masalah jaringan, pengiriman akan dicoba lagi
  • Jika kotak surat penerima penuh, sistem akan mencoba lagi nanti
  • Jika server penerima tidak tersedia untuk sementara, kami akan terus mencoba

Pendekatan ini secara signifikan meningkatkan tingkat pengiriman dengan tetap menjaga privasi dan keamanan.

Menggunakan Nodemailer

Nodemailer adalah modul populer untuk mengirim email dari aplikasi 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();

Menggunakan Express.js

Berikut cara mengintegrasikan Forward Email SMTP dengan aplikasi 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}); });

Menggunakan 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}")

Menggunakan Django

Untuk aplikasi Django, tambahkan yang berikut ke 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'

Kemudian kirim email dalam tampilan Anda:

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!')

Menggunakan 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}"; }

Menggunakan Laravel

Untuk aplikasi Laravel, perbarui .env mengajukan:

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}"

Kemudian kirim email menggunakan fasad 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 'Email sent successfully!';
}

}

Menggunakan 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!"

Menggunakan 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("&#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);
    }
}

}

Petir

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. Buka Thunderbird dan masuk ke Pengaturan Akun
  2. Klik "Tindakan Akun" dan pilih "Tambah Akun Email"
  3. Masukkan nama, alamat email, dan kata sandi Anda
  4. Klik "Konfigurasi Manual" dan masukkan rincian berikut:
    • Server Masuk:
      • IMAP: imap.forwardemail.net, Porta: 993, SSL/TLS
      • POP3: pop3.forwardemail.net, Porta: 995, SSL/TLS
    • Server Keluar (SMTP): smtp.forwardemail.net, Port: 465, SSL/TLS
    • Otentikasi: Kata Sandi Normal
    • Nama pengguna: alamat email lengkap Anda
  5. Klik "Uji" dan kemudian "Selesai"

Surat Apple

  1. Buka Mail dan buka Mail > Preferensi > Akun
  2. Klik tombol "+" untuk menambahkan akun baru
  3. Pilih "Akun Email Lainnya" dan klik "Lanjutkan"
  4. Masukkan nama, alamat email, dan kata sandi Anda, lalu klik "Masuk"
  5. Jika pengaturan otomatis gagal, masukkan rincian berikut:
    • Server Surat Masuk: imap.forwardemail.net (atau pop3.forwardemail.net untuk POP3)
    • Server Surat Keluar: smtp.forwardemail.net
    • Nama pengguna: alamat email lengkap Anda
    • Kata sandi: kata sandi Anda
  6. Klik "Masuk" untuk menyelesaikan pengaturan

Gmail (Kirim Email Sebagai)

  1. Buka Gmail dan buka Setelan > Akun dan Impor
  2. Di bawah "Kirim email sebagai", klik "Tambahkan alamat email lain"
  3. Masukkan nama dan alamat email Anda, lalu klik "Langkah Berikutnya"
  4. Masukkan rincian server SMTP berikut:
    • Server SMTP: smtp.forwardemail.net
    • Pelabuhan: 465
    • Nama pengguna: alamat email lengkap Anda
    • Kata sandi: kata sandi Anda
    • Pilih "Koneksi aman menggunakan SSL"
  5. Klik "Tambah Akun" dan verifikasi alamat email Anda

Masalah Umum dan Solusinya

  1. Otentikasi Gagal

    • Verifikasi nama pengguna (alamat email lengkap) dan kata sandi Anda
    • Pastikan Anda menggunakan port yang benar (465 untuk SSL/TLS)
    • Periksa apakah akun Anda telah mengaktifkan akses SMTP
  2. Waktu Koneksi Habis

    • Periksa koneksi internet Anda
    • Verifikasi pengaturan firewall tidak memblokir lalu lintas SMTP
    • Coba gunakan port lain (587 dengan STARTTLS)
  3. Pesan Ditolak

    • Pastikan alamat "Dari" Anda cocok dengan email Anda yang diautentikasi
    • Periksa apakah IP Anda masuk daftar hitam
    • Verifikasi konten pesan Anda tidak memicu filter spam
  4. Kesalahan TLS/SSL

    • Perbarui aplikasi/perpustakaan Anda untuk mendukung versi TLS modern
    • Pastikan sertifikat CA sistem Anda mutakhir
    • Coba TLS eksplisit daripada TLS implisit

Mendapatkan Bantuan

Jika Anda mengalami masalah yang tidak tercakup di sini, silakan:

  1. Periksa kami halaman FAQ untuk pertanyaan umum
  2. Tinjau kami postingan blog tentang pengiriman email untuk informasi lebih rinci
  3. Hubungi tim dukungan kami di support@forwardemail.net

Layanan SMTP Forward Email menyediakan cara yang andal, aman, dan berfokus pada privasi untuk mengirim email dari aplikasi dan klien email Anda. Dengan sistem antrean cerdas, mekanisme coba ulang 5 hari, dan pemberitahuan status pengiriman yang komprehensif, Anda dapat yakin bahwa email Anda akan sampai ke tujuannya.

Untuk kasus penggunaan lebih lanjut atau integrasi khusus, silakan hubungi tim dukungan kami.