Cara bikin email domain sendiri dengan Cloudflare dan Mailgun
Panduan memakai Cloudflare untuk menerima email domain sendiri dan Mailgun untuk mengirim email aplikasi, notifikasi, invoice, serta email teknis dari domain yang sama.
Mailgun sudah lama dikenal sebagai layanan email untuk developer. Kalau kamu membuat aplikasi, marketplace kecil, sistem invoice, CRM, atau website yang perlu mengirim notifikasi otomatis, Mailgun bisa menjadi pilihan yang kuat.
Di sisi lain, Cloudflare bisa membantu menerima email masuk tanpa harus membeli mail hosting. Jadi kombinasi Cloudflare + Mailgun bisa dipakai untuk membuat email domain sendiri dengan pembagian tugas yang jelas.
Cloudflare mengurus inbound. Mailgun mengurus outbound.
Misalnya kamu ingin punya alamat:
[email protected]untuk menerima pesan dari pelanggan.[email protected]untuk bantuan.[email protected]untuk notifikasi otomatis.[email protected]untuk invoice.
Dengan setup ini, email masuk bisa diforward ke Gmail, sedangkan email aplikasi dikirim lewat Mailgun.
Bedakan menerima dan mengirim email
Ini bagian yang paling sering bikin bingung.
Menerima email berarti domain kamu punya MX record yang memberi tahu dunia: "kalau ada email untuk domain ini, kirim ke server ini."
Mengirim email berarti domain kamu punya DNS record yang memberi tahu dunia: "server ini boleh mengirim email atas nama domain saya."
Cloudflare Email Routing mengurus bagian pertama. Mailgun mengurus bagian kedua.
Kamu bisa memakai keduanya bersamaan selama DNS record-nya tidak saling tabrak.
Kapan cocok pakai Mailgun
Mailgun cocok kalau kamu punya kebutuhan email teknis yang lebih serius:
- Email notifikasi dari aplikasi.
- Email invoice.
- Email reset password.
- Email order confirmation.
- Email status pengiriman.
- Email sistem dari backend.
Mailgun juga cocok kalau kamu ingin log pengiriman, status delivery, bounce, complaint, dan kontrol domain/subdomain yang lebih teknis.
Untuk newsletter visual dan campaign marketing, Brevo mungkin lebih nyaman. Untuk API email yang developer-oriented, Mailgun tetap kuat.
Gunakan subdomain untuk email aplikasi
Saran saya: jangan langsung pakai root domain untuk semua pengiriman teknis.
Kalau domain kamu domainkamu.com, pertimbangkan memakai subdomain:
mg.domainkamu.com
Lalu alamat pengirimnya bisa seperti:
[email protected]
[email protected]
Kenapa subdomain?
Karena reputasi pengiriman email bisa dipisahkan. Kalau email aplikasi bermasalah, root domain utama tidak langsung ikut kotor. Ini bukan wajib, tapi praktik yang lebih sehat untuk jangka panjang.
Untuk branding, kamu masih bisa menampilkan nama pengirim sebagai brand:
Nama Brand <[email protected]>
Kalau ingin tetap memakai [email protected] untuk percakapan manusia, arahkan itu lewat Cloudflare Email Routing.
Langkah 1: aktifkan Email Routing di Cloudflare
Pastikan domain memakai Cloudflare DNS.
Di dashboard Cloudflare:
- Pilih domain.
- Masuk ke Compute > Email Service > Email Routing.
- Pilih Onboard Domain.
- Review record yang akan ditambahkan.
- Klik Done.
Cloudflare akan menambahkan record untuk menerima email masuk. Setelah domain onboarded, buat destination address.
Langkah 2: buat destination address dan routing rule
Destination address adalah inbox tujuan.
Misalnya kamu ingin email [email protected] masuk ke Gmail pribadi:
- Buka Email Routing > Destination Addresses.
- Tambahkan
[email protected]. - Verifikasi lewat email yang dikirim Cloudflare.
Lalu buat routing rule:
- Buka Email Routing > Routing Rules.
- Klik Create routing rule.
- Isi email pattern
halo. - Action: Send to an email.
- Destination: pilih Gmail yang sudah diverifikasi.
- Simpan.
Sekarang email masuk ke [email protected] akan diteruskan ke Gmail.
Langkah 3: tambahkan domain atau subdomain di Mailgun
Di Mailgun, tambahkan domain pengiriman. Untuk setup yang lebih rapi, gunakan subdomain seperti mg.domainkamu.com.
Mailgun akan memberi DNS record untuk verifikasi. Record yang umum muncul:
- TXT SPF untuk mengizinkan server Mailgun mengirim email.
- TXT DKIM untuk tanda tangan email.
- CNAME untuk tracking open, click, dan unsubscribe jika fitur itu dipakai.
- MX tertentu jika kamu ingin memakai inbound routing Mailgun untuk subdomain tersebut.
Kalau kamu hanya memakai Mailgun untuk mengirim email, fokus pada record yang diminta Mailgun untuk sending domain verification.
Langkah 4: pasang DNS record Mailgun di Cloudflare
Buka Cloudflare DNS, lalu tambahkan record dari Mailgun satu per satu.
Contoh SPF Mailgun yang sering terlihat:
v=spf1 include:mailgun.org ~all
Tapi tetap salin dari dashboard Mailgun, karena domain dan region akun bisa memengaruhi detail record.
Untuk DKIM, Mailgun akan memberi value spesifik. Jangan copy dari tutorial generik. DKIM berisi public key dan harus cocok dengan domain kamu.
Untuk CNAME tracking, ikuti instruksi Mailgun. Jika record itu berupa CNAME untuk tracking, biasanya sebaiknya DNS-only, bukan diproxy sebagai traffic web Cloudflare.
Setelah semua record dipasang, kembali ke Mailgun dan klik verify.
Langkah 5: kirim email dari backend
Setelah domain verified, kamu bisa mengirim email dari backend.
Contoh gambaran payload:
const form = new FormData();
form.append("from", "Nama Brand <[email protected]>");
form.append("to", "[email protected]");
form.append("subject", "Invoice kamu sudah siap");
form.append("html", "<p>Invoice kamu sudah bisa dibayar.</p>");
await fetch("https://api.mailgun.net/v3/mg.domainkamu.com/messages", {
method: "POST",
headers: {
Authorization: "Basic " + btoa(`api:${process.env.MAILGUN_API_KEY}`),
},
body: form,
});
Di production, jangan hardcode API key. Simpan di environment variable atau secret manager.
Langkah 6: buat alamat reply yang benar
Email otomatis sebaiknya tidak membuat pelanggan buntu.
Walaupun kamu mengirim dari:
[email protected]
kamu bisa mengatur reply-to ke:
[email protected]
Dengan begitu, kalau pelanggan membalas invoice atau notifikasi, balasannya masuk ke alamat yang diroute oleh Cloudflare.
Ini penting untuk bisnis kecil. Banyak pelanggan tetap membalas email otomatis. Kalau reply mereka mental atau tidak dibaca, pengalaman pelanggan jadi buruk.
Kesalahan yang harus dihindari
Pertama, jangan membuat dua SPF record untuk domain yang sama.
Kalau kamu punya beberapa layanan pengirim, gabungkan include SPF dalam satu TXT record. Dua SPF record terpisah bisa membuat validasi SPF gagal.
Kedua, jangan mengirim email marketing agresif dari domain yang sama dengan email transaksi.
Email reset password, invoice, dan order confirmation harus punya reputasi bersih. Kalau kamu ingin eksperimen campaign, pakai subdomain terpisah.
Ketiga, jangan mengaktifkan tracking tanpa paham konsekuensinya.
Open tracking dan click tracking bisa berguna, tapi juga menambah kompleksitas DNS dan kadang memengaruhi persepsi penerima. Untuk email transaksional penting, tracking tidak selalu perlu.
Keempat, jangan lupa DMARC.
DMARC membantu domain memberi policy saat SPF/DKIM gagal. Mulai dari monitoring dulu, lalu perketat setelah yakin semua pengirim resmi sudah benar.
Checklist sebelum production
Sebelum dipakai oleh aplikasi:
- Email masuk ke
[email protected]berhasil diterima di inbox tujuan. - Domain atau subdomain Mailgun sudah verified.
- SPF lulus.
- DKIM lulus.
- DMARC ada minimal untuk monitoring.
- Email test masuk ke Gmail dan Outlook.
- Bounce dan complaint dipantau.
- Reply-to mengarah ke inbox yang benar.
- API key disimpan sebagai secret, bukan di kode.
Kesimpulan
Cloudflare + Mailgun adalah setup yang cocok untuk produk digital, SaaS kecil, toko online custom, atau sistem internal yang butuh email otomatis dari domain sendiri.
Cloudflare membuat email masuk sederhana tanpa mail hosting. Mailgun memberi kontrol kuat untuk email keluar dari aplikasi. Kalau disusun dengan subdomain yang rapi, DNS yang benar, dan kebiasaan kirim yang sehat, setup ini bisa dipakai cukup lama sebelum kamu perlu pindah ke mail suite penuh.
Referensi resmi:
- Cloudflare Email Service: https://developers.cloudflare.com/email-service/
- Cloudflare Email Routing rules: https://developers.cloudflare.com/email-service/configuration/email-routing-addresses/
- Mailgun domain verification: https://documentation.mailgun.com/docs/mailgun/user-manual/domains/domains-verify
Tinggalkan komentar
Markdown ringan didukung: **bold**, *italic*, `code`, [link](url). Komentar pertama dari email baru akan dimoderasi.
Suka cerita ini? Subscribe untuk cerita berikutnya.
Komentar