Empat record DNS yang menentukan nasib email kalian: MX untuk rute penerimaan, SPF untuk domain yang diizinkan mengirim, DKIM untuk tanda tangan kriptografi, dan DMARC untuk kebijakan bila autentikasi gagal, lengkap dengan verifikasi menggunakan dig dan tools online.

Server mail kalian sudah berdiri, tapi belum "terhubung" ke dunia. Jembatannya adalah DNS. Tanpa MX record yang benar, tidak ada server lain yang mau menerima email kalian. Tanpa SPF, DKIM, dan DMARC yang lengkap, email kalian dicurigai palsu dan berakhir di spam.
Episode ini membahas empat record utama: MX (rute), SPF (otorisasi), DKIM (tanda tangan), dan DMARC (kebijakan), plus rDNS/PTR sebagai pelengkap reputasi. Kita juga akan mempelajari cara memverifikasi semuanya dengan dig.
MX (Mail Exchanger) memberitahu MTA lain: "untuk menerima email domain ini, kirim ke host ini". Sintaksnya berisi host tujuan dan prioritas — angka lebih kecil berarti diprioritaskan lebih tinggi:
example.com. IN MX 10 mail.example.com.Jika ada dua record, misalnya prioritas 10 dan 20, server lain mencoba yang 10 dulu, lalu fallback ke 20 saat yang pertama mati. Untuk lab kita, satu record sudah cukup.
Tambahkan di panel DNS kalian, lalu verifikasi:
dig MX example.com +short
host -t MX example.comJika output menampilkan 10 mail.example.com, rute masuk sudah terbuka. Ingat: MX harus menunjuk ke host, bukan ke IP langsung.
SPF (Sender Policy Framework) menjawab pertanyaan: "server mana yang sah mengirim email atas nama domain ini?" Jawabannya ditulis sebagai TXT record di root domain:
dig TXT example.com +shortRecord SPF yang lengkap terlihat seperti ini:
example.com. IN TXT "v=spf1 mx ip4:203.0.113.10 -all"Maksudnya: hanya server yang terdaftar sebagai MX dan IP 203.0.113.10 yang boleh mengirim atas nama example.com; selain itu, tolak (-all). Boleh maksimal satu record SPF per domain — lebih dari satu akan memicu error.
DKIM (DomainKeys Identified Mail) memberi setiap email tanda tangan kriptografi. Pengirim menandatangani header dan body dengan private key; penerima memverifikasi dengan public key yang dipublikasikan sebagai TXT record. Kunci disimpan di bawah selector, misalnya:
mail._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0...abc123"Konfigurasi lengkap penandatanganan dengan OpenDKIM akan kita bangun di episode 17. Untuk sekarang, yang perlu kalian pahami: kapan pun kalian melihat nama seperti mail._domainkey, itu adalah public key DKIM milik selector mail untuk domain kalian. Penandatanganan terjadi di sisi pengirim, sedangkan verifikasi terjadi di sisi penerima — dua sisi yang tidak boleh tertukar.
DMARC (Domain-based Message Authentication, Reporting, and Conformance) memberitahu penerima apa yang harus dilakukan jika SPF dan DKIM gagal atau tidak selaras. Record-nya berada di subdomain _dmarc:
_dmarc.example.com. IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"Nilai p menentukan kebijakan:
Nilai p | Arti |
|---|---|
none | Hanya memantau, tidak menindak — untuk tahap awal |
quarantine | Kirim ke spam — untuk transisi |
reject | Tolak email yang tidak lolos — untuk produksi |
rua adalah alamat penerima laporan agregat. Strategi peningkatan bertahap none → quarantine → reject akan kalian jalankan di episode 17.
PTR record (reverse DNS) memetakan IP kembali ke hostname — kebalikan dari A record. Server penerima besar memeriksa PTR untuk menilai reputasi. Persyaratan umum: PTR 203.0.113.10 harus mengarah ke mail.example.com, dan mail.example.com harus punya A record yang kembali ke IP itu (forward-confirmed reverse DNS / FCrDNS).
PTR biasanya diatur di panel provider VPS, bukan di registrar. Verifikasi:
dig -x 203.0.113.10 +short
dig A mail.example.com +shortJika kedua query mengembalikan nilai yang saling cocok, FCrDNS kalian lengkap.
Kebiasaan mengecek seluruh catatan DNS dalam satu baris akan menyelamatkan kalian saat debugging deliverability:
dig MX example.com +short
dig TXT example.com +short
dig TXT _dmarc.example.com +short
dig TXT mail._domainkey.example.com +short
dig -x 203.0.113.10 +shortLatih juga dengan host dan nslookup — masing-masing berguna di skenario berbeda. Setelah semua record mengembalikan nilai yang diharapkan, uji dengan tools online seperti mail-tester atau dmarctester; episode 19 akan membahas cara membaca skornya.
Info
Penyebaran DNS tidak instan. Gunakan dig example.com dengan resolver berbeda, misalnya dig @8.8.8.8 atau dig @1.1.1.1, untuk memastikan record sudah terlihat di luar jaringan lokal kalian.
Episode 5 selesai. Inti yang harus dibawa pulang:
none → quarantine → reject plus laporan rua.DNS sudah lengkap. Di episode 6 kita mengamankan seluruh jalur: TLS — sertifikat Let's Encrypt, konfigurasi di Postfix dan Dovecot, serta enforce TLS pada semua port. Sampai jumpa di episode 6!