Contoh Integrasi SMTP
Kata Pengantar
Panduan ini memberikan contoh detail tentang cara berintegrasi dengan layanan SMTP Forward Email menggunakan berbagai bahasa pemrograman, kerangka kerja, dan klien email. Layanan SMTP kami dirancang agar andal, aman, dan mudah diintegrasikan dengan aplikasi Anda yang sudah ada.
Cara Kerja Pemrosesan SMTP Email Penerusan
Sebelum menyelami contoh integrasi, penting untuk memahami bagaimana layanan SMTP kami memproses email:
Sistem Antrean Email dan Coba Ulang
Saat Anda mengirimkan email melalui SMTP ke server kami:
- Pemrosesan Awal: Email divalidasi, dipindai untuk mendeteksi malware, dan diperiksa dengan filter spam.
- Antrean Cerdas: Email ditempatkan dalam sistem antrean canggih untuk pengiriman.
- Mekanisme Coba Ulang Cerdas: Jika pengiriman gagal sementara, sistem kami akan:
- Menganalisis respons kesalahan menggunakan fungsi
getBounceInfo
kami. - Menentukan apakah masalah bersifat sementara (misalnya, "coba lagi nanti", "ditunda sementara") atau permanen (misalnya, "pengguna tidak dikenal").
- Untuk masalah sementara, tandai email untuk dicoba ulang.
- Untuk masalah permanen, buat notifikasi pantulan.
- Periode Coba Ulang 5 Hari: Kami mencoba ulang pengiriman hingga 5 hari (mirip dengan standar industri seperti Postfix), memberikan waktu bagi masalah sementara untuk diselesaikan.
- Notifikasi Status Pengiriman: Pengirim menerima notifikasi tentang status email mereka (terkirim, tertunda, atau terpental).
Note
Setelah pengiriman berhasil, konten email SMTP keluar akan dihapus setelah periode penyimpanan yang dapat dikonfigurasi (default 30 hari) demi keamanan dan privasi. Hanya pesan placeholder yang tersisa yang menunjukkan pengiriman berhasil.
Diuji Coba untuk Keandalan
Sistem kami dirancang untuk menangani berbagai kasus khusus:
- Jika daftar blokir terdeteksi, email akan dicoba ulang secara otomatis.
- Jika terjadi masalah jaringan, pengiriman akan dicoba ulang.
- Jika kotak surat penerima penuh, sistem akan mencoba lagi nanti.
- Jika server penerima sementara tidak tersedia, kami akan terus mencoba.
Pendekatan ini secara signifikan meningkatkan tingkat pengiriman dengan tetap menjaga privasi dan keamanan.
Integrasi Node.js
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}`);
});
Integrasi Python
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
Anda:
# 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'
Lalu 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!')
Integrasi PHP
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 = '<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}";
}
Menggunakan Laravel
Untuk aplikasi Laravel, perbarui file .env
Anda:
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 façade 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!';
}
}
Integrasi Ruby
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!"
Integrasi Java
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("<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);
}
}
}
Konfigurasi Klien Email
Thunderbird
- Buka Thunderbird dan buka Pengaturan Akun
- Klik "Tindakan Akun" dan pilih "Tambahkan Akun Email"
- Masukkan nama, alamat email, dan kata sandi Anda
- Klik "Konfigurasi Manual" dan masukkan detail berikut:
- Server Masuk:
- IMAP: imap.forwardemail.net, Port: 993, SSL/TLS
- POP3: pop3.forwardemail.net, Port: 995, SSL/TLS
- Server Keluar (SMTP): smtp.forwardemail.net, Port: 465, SSL/TLS
- Autentikasi: Kata Sandi Normal
- Nama Pengguna: alamat email lengkap Anda
- Klik "Uji" lalu "Selesai"
Apple Mail
- Buka Mail dan buka Mail > Preferensi > Akun
- Klik tombol "+" untuk menambahkan akun baru
- Pilih "Akun Mail Lainnya" dan klik "Lanjutkan"
- Masukkan nama, alamat email, dan kata sandi Anda, lalu klik "Masuk"
- Jika pengaturan otomatis gagal, masukkan detail berikut:
- Server Email Masuk: imap.forwardemail.net (atau pop3.forwardemail.net untuk POP3)
- Server Email Keluar: smtp.forwardemail.net
- Nama Pengguna: alamat email lengkap Anda
- Kata Sandi: kata sandi Anda
- Klik "Masuk" untuk menyelesaikan pengaturan
Gmail (Kirim Email Sebagai)
- Buka Gmail dan buka Setelan > Akun dan Impor
- Di bagian "Kirim email sebagai", klik "Tambahkan alamat email lain"
- Masukkan nama dan alamat email Anda, lalu klik "Langkah Berikutnya"
- Masukkan detail server SMTP berikut:
- Server SMTP: smtp.forwardemail.net
- Port: 465
- Nama Pengguna: alamat email lengkap Anda
- Kata Sandi: kata sandi Anda
- Pilih "Koneksi aman menggunakan SSL"
- Klik "Tambahkan Akun" dan verifikasi alamat email Anda
Pemecahan Masalah
Masalah Umum dan Solusi
- 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
- Waktu Koneksi Habis
- Periksa koneksi internet Anda
- Pastikan pengaturan firewall tidak memblokir lalu lintas SMTP
- Coba gunakan port lain (587 dengan STARTTLS)
- Pesan Ditolak
- Pastikan alamat "Dari" Anda sesuai dengan alamat email terautentikasi Anda
- Periksa apakah IP Anda masuk daftar hitam
- Pastikan isi pesan Anda tidak memicu filter spam
- Kesalahan TLS/SSL
- Perbarui aplikasi/pustaka Anda agar mendukung versi TLS terbaru
- Pastikan sertifikat CA sistem Anda mutakhir
- Coba TLS eksplisit, bukan TLS implisit
Mendapatkan Bantuan
Jika Anda mengalami masalah yang tidak tercakup di sini, silakan:
- Periksa Halaman FAQ kami untuk pertanyaan umum
- Tinjau postingan blog tentang pengiriman email kami untuk informasi lebih lanjut
- Hubungi tim dukungan kami di support@forwardemail.net
Sumber Daya Tambahan
- Teruskan Dokumentasi Email
- Batasan dan Konfigurasi Server SMTP
- Panduan Praktik Terbaik Email
- Praktik Keamanan
Kesimpulan
Layanan SMTP Forward Email menyediakan cara yang andal, aman, dan mengutamakan privasi untuk mengirim email dari aplikasi dan klien email Anda. Dengan sistem antrean cerdas kami, mekanisme coba ulang 5 hari, dan notifikasi 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.