Dokumentasi pengembang
Kirim email lewat SMTP
Arahkan aplikasi SMTP apa pun ke Banger, dari Supabase Auth hingga WordPress dan mailer framework Anda. Kunci Banger API menjadi kata sandi, dan setiap pesan dikirim dari domain Anda sendiri serta muncul di Log.
Pengaturan
| Host | submit.bangermail.com |
|---|---|
| Port | 465 dengan TLS sejak awal, atau 587 dengan STARTTLS. Jika jaringan Anda memblokirnya, gunakan 2465 (TLS) atau 2587 (STARTTLS); port 25 juga menerima STARTTLS. |
| Nama pengguna | banger. Nilai apa pun bisa: kunci API saja mengidentifikasi ruang kerja Anda. |
| Kata sandi | Kunci Banger API dengan cakupan mail:send. |
| Enkripsi | TLS 1.2 atau lebih baru. Login hanya tersedia setelah TLS dimulai, sehingga kunci tidak pernah melintasi jaringan sebagai teks biasa. |
| Autentikasi | PLAIN atau LOGIN. |
Sebelum memulai
- Buat kunci API. Di aplikasi Banger, buka Pengaturan → Pengembang → Kelola kunci API, pilih Buat kunci API, pilih
mail:send, dan salin kunci: hanya ditampilkan sekali. Halaman menampilkan pengaturan SMTP ini di samping kunci Anda. - Kirim dari jalur Produk. Alamat From harus pada hostname dengan jalur Produk aktif, jalur untuk tanda terima, peringatan, dan email lain dari aplikasi Anda. Di Domain, pilih Tambah jalur, lalu Produk, dan tambahkan catatan DNS yang dicantumkan. Jalur Email (kotak surat tim) atau jalur Kampanye tidak membawa email aplikasi, sehingga email aplikasi tidak dapat memengaruhi reputasi kotak masuk tim.
Contoh: Supabase Auth
Di proyek Supabase Anda, buka Autentikasi → Email → Pengaturan SMTP dan aktifkan SMTP khusus:
| Email pengirim | Alamat di jalur Produk Anda, seperti noreply@app.example.com |
|---|---|
| Nama pengirim | Nama produk Anda. Banger mengirimnya sebagaimana ditulis. |
| Host | submit.bangermail.com |
| Port | 465 |
| Nama pengguna | banger |
| Kata sandi | Kunci API Anda |
Simpan, lalu kirim magic link dari Autentikasi → Pengguna untuk memeriksa kedatangannya.
Contoh: Node.js
import nodemailer from "nodemailer";
const transport = nodemailer.createTransport({
host: "submit.bangermail.com",
port: 465,
secure: true,
auth: { user: "banger", pass: process.env.BANGER_API_KEY },
});
await transport.sendMail({
from: "Acme <noreply@app.example.com>",
to: "person@example.com",
subject: "Your receipt",
html: "<p>Thanks for your order.</p>",
}); Untuk menguji dari terminal dengan swaks:
swaks --server submit.bangermail.com:465 --tls-on-connect \
--auth PLAIN --auth-user banger --auth-password "$BANGER_API_KEY" \
--from noreply@app.example.com --to you@example.com Yang terjadi pada setiap pesan
- Banger mengirim pesan sebagaimana ditulis aplikasi, dengan nama From Anda, ditandatangani kunci DKIM domain, dan dikirim dari domain bounce jalur Produk.
- Menghapus
Bcc,Return-Path, dan header milik Banger, serta menambahkanReply-Toyang menyebut alamat From jika belum ada. - Setiap penerima diperiksa pada
RCPT TO: alamat yang ditekan ditolak sendiri dan yang lain dikirim. - Pesan dapat berukuran hingga 10 MiB dengan hingga 50 penerima.
- Header
Idempotency-Keymenjadikan percobaan ulang sebagai pengiriman yang sama. Tanpanya, pengulangan pesan dan penerima yang sama tetap dikenali. - Setiap pesan muncul di Log dengan SMTP sebagai sumber, dan dihitung dalam paket seperti pengiriman lain.
Balasan dan kesalahan
Penolakan menyebut penyebab dan membawa referensi (ref …) yang cocok dengan entri Log. Kode yang diawali 4 bersifat sementara: aplikasi dapat mencoba lagi nanti.
| Balasan | Arti |
|---|---|
535 5.7.8 | Kata sandi bukan kunci Banger API valid, kunci dicabut, atau tidak memiliki mail:send. |
421 4.7.0 | Tiga login gagal pada satu koneksi: koneksi ditutup. Periksa kunci sebelum mencoba ulang. |
454 4.7.0 | Terlalu banyak login gagal dari jaringan Anda dalam satu jam terakhir. Coba lagi nanti. |
550 5.7.1 | Hostname From tidak memiliki jalur Produk siap kirim (balasan menyebut kekurangannya), penerima ditekan, atau pengiriman dijeda karena reputasi. |
553 5.1.3 | Alamat penerima tidak valid. |
552 5.3.4 | Pesan lebih besar dari 10 MiB. |
554 5.6.0 | Pesan salah format, misalnya header From atau Subject berulang, atau From dengan lebih dari satu alamat. |
451 4.7.0 | Jatah pengiriman atau batas harian ruang kerja habis. Diperbarui pada periode penagihan atau hari berikutnya, atau sekarang dengan peningkatan paket. |
451 4.3.0 | Banger belum dapat menerima pesan saat ini. Coba ulang. |
Keamanan
- Banger hanya menyimpan hash tiap kunci. Cabut atau rotasi kunci di Kelola kunci API; klien SMTP yang memakainya ditolak saat login berikutnya.
- Berikan SMTP kunci sendiri dengan hanya
mail:send, agar kata sandi bocor tidak dapat membaca ruang kerja Anda. - Login gagal dibatasi per jaringan klien dan per kunci, dan login ditolak dengan salah satu kunci Anda dicatat di Log.
Lebih suka HTTP? Pengiriman yang sama tersedia melalui Banger API.