Contoh Integrasi SMTP
Kata Pengantar
Panduan ini menyediakan contoh rinci tentang cara mengintegrasikan 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 Forward Email
Sebelum masuk ke contoh integrasi, penting untuk memahami bagaimana layanan SMTP kami memproses email:
Antrian Email dan Sistem Pengulangan
Saat Anda mengirim email melalui SMTP ke server kami:
- Pemrosesan Awal: Email divalidasi, dipindai untuk malware, dan diperiksa terhadap filter spam
- Antrian Cerdas: Email ditempatkan dalam sistem antrian canggih untuk pengiriman
- Mekanisme Pengulangan Cerdas: Jika pengiriman gagal sementara, sistem kami akan:
- Menganalisis respons kesalahan menggunakan fungsi
getBounceInfo - Menentukan apakah masalah bersifat sementara (misalnya, "coba lagi nanti", "ditunda sementara") atau permanen (misalnya, "pengguna tidak dikenal")
- Untuk masalah sementara, menandai email untuk pengulangan
- Untuk masalah permanen, menghasilkan notifikasi bounce
- Menganalisis respons kesalahan menggunakan fungsi
- Periode Pengulangan 5 Hari: Kami mencoba ulang pengiriman hingga 5 hari (mirip dengan standar industri seperti Postfix), memberi waktu untuk masalah sementara terselesaikan
- Notifikasi Status Pengiriman: Pengirim menerima notifikasi tentang status email mereka (terkirim, tertunda, atau bounce)
Note
Setelah pengiriman berhasil, konten email SMTP keluar akan dihapus setelah periode retensi yang dapat dikonfigurasi (default 30 hari) demi keamanan dan privasi. Hanya pesan placeholder yang tersisa yang menunjukkan pengiriman berhasil.
Dirancang Agar Mudah dan Andal
Sistem kami dirancang untuk menangani berbagai kasus tepi:
- Jika terdeteksi daftar blokir, email akan otomatis dicoba ulang
- 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 sambil 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());
// Konfigurasi transporter email
const transporter = nodemailer.createTransport({
host: 'smtp.forwardemail.net',
port: 465,
secure: true,
auth: {
user: 'your-username@your-domain.com',
pass: 'your-password'
}
});
// Endpoint API untuk mengirim email
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
# Konfigurasi email
sender_email = "your-username@your-domain.com"
receiver_email = "recipient@example.com"
password = "your-password"
# Buat pesan
message = MIMEMultipart("alternative")
message["Subject"] = "Hello from Forward Email"
message["From"] = sender_email
message["To"] = receiver_email
# Buat versi teks biasa dan HTML dari pesan Anda
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>"
# Ubah ini menjadi objek MIMEText plain/html
part1 = MIMEText(text, "plain")
part2 = MIMEText(html, "html")
# Tambahkan bagian HTML/teks biasa ke pesan MIMEMultipart
message.attach(part1)
message.attach(part2)
# Kirim 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 berikut ini ke settings.py Anda:
# Pengaturan email
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 di views 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 {
// Pengaturan server
$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;
// Penerima
$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');
// Konten
$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 berhasil dikirim!';
}
}
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 'Halo dari Forward Email'
text_part do
body 'Halo dunia! Ini adalah email percobaan yang dikirim menggunakan Ruby Mail dan Forward Email SMTP.'
end
html_part do
content_type 'text/html; charset=UTF-8'
body '<b>Halo dunia!</b> Ini adalah email percobaan yang dikirim menggunakan Ruby Mail dan Forward Email SMTP.'
end
end
mail.deliver!
puts "Email berhasil dikirim!"
Integrasi Java
Menggunakan JavaMail API
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
public class SendEmail {
public static void main(String[] args) {
// Email dan password pengirim
final String username = "your-username@your-domain.com";
final String password = "your-password";
// Properti server 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");
// Membuat sesi dengan authenticator
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
// Membuat pesan
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(username));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recipient@example.com"));
message.setSubject("Halo dari Forward Email");
// Membuat pesan multipart
Multipart multipart = new MimeMultipart("alternative");
// Bagian teks
BodyPart textPart = new MimeBodyPart();
textPart.setText("Halo dunia! Ini adalah email percobaan yang dikirim menggunakan JavaMail dan Forward Email SMTP.");
// Bagian HTML
BodyPart htmlPart = new MimeBodyPart();
htmlPart.setContent("<b>Halo dunia!</b> Ini adalah email percobaan yang dikirim menggunakan JavaMail dan Forward Email SMTP.", "text/html");
// Menambahkan bagian ke multipart
multipart.addBodyPart(textPart);
multipart.addBodyPart(htmlPart);
// Mengatur konten
message.setContent(multipart);
// Mengirim pesan
Transport.send(message);
System.out.println("Email berhasil dikirim!");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
Konfigurasi Klien Email
Thunderbird
- Buka Thunderbird dan pergi ke Pengaturan Akun
- Klik "Tindakan Akun" dan pilih "Tambah Akun Email"
- Masukkan nama Anda, alamat email, dan kata sandi
- 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
- Server Masuk:
- Klik "Uji" lalu "Selesai"
Apple Mail
- Buka Mail dan pergi ke Mail > Preferensi > Akun
- Klik tombol "+" untuk menambahkan akun baru
- Pilih "Akun Email Lain" dan klik "Lanjutkan"
- Masukkan nama Anda, alamat email, dan kata sandi, lalu klik "Masuk"
- Ketika pengaturan otomatis gagal, masukkan detail 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
- Klik "Masuk" untuk menyelesaikan pengaturan
Gmail (Kirim Email Sebagai)
- Buka Gmail dan pergi ke Pengaturan > Akun dan Impor
- Di bawah "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
-
Autentikasi Gagal
- Verifikasi nama pengguna Anda (alamat email lengkap) dan kata sandi
- Pastikan Anda menggunakan port yang benar (465 untuk SSL/TLS)
- Periksa apakah akun Anda memiliki akses SMTP yang diaktifkan
-
Waktu Koneksi Habis
- Periksa koneksi internet Anda
- Verifikasi pengaturan firewall tidak memblokir lalu lintas SMTP
- Coba gunakan port 465 dengan SSL/TLS (disarankan) atau port 587 dengan STARTTLS
-
Pesan Ditolak
- Pastikan alamat "Dari" Anda sesuai dengan email yang diautentikasi
- Periksa apakah IP Anda masuk daftar hitam
- Verifikasi isi pesan Anda tidak memicu filter spam
-
Kesalahan TLS/SSL
- Perbarui aplikasi/perpustakaan Anda untuk mendukung versi TLS modern
- Pastikan sertifikat CA sistem Anda terbaru
- Coba TLS eksplisit daripada TLS implisit
Mendapatkan Bantuan
Jika Anda mengalami masalah yang tidak tercakup di sini, silakan:
- Periksa halaman FAQ kami untuk pertanyaan umum
- Tinjau posting blog kami tentang pengiriman email untuk informasi detail
- Hubungi tim dukungan kami di support@forwardemail.net
Sumber Daya Tambahan
- Dokumentasi Forward Email
- Batas dan Konfigurasi Server SMTP
- Panduan Praktik Terbaik Email
- Praktik Keamanan
Kesimpulan
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 kami, mekanisme percobaan ulang selama 5 hari, dan notifikasi status pengiriman yang komprehensif, Anda dapat yakin bahwa email Anda akan sampai ke tujuan.
Untuk kasus penggunaan yang lebih maju atau integrasi khusus, silakan hubungi tim dukungan kami.