Memetakan arsitektur email end-to-end: peran MUA, MTA, MDA, dan mailbox server, bagaimana pesan mengalir dari pengirim ke penerima, port dan protokol yang terlibat, serta di titik mana Postfix, Dovecot, dan Roundcube berdiri di dalam alur tersebut.

Episode 1 menjelaskan mengapa komponen kita ada. Episode 2 menjawab bagaimana mereka bekerja sama. Ini adalah peta arsitektur: siapa melakukan apa, ke mana pesan mengalir, dan di port mana setiap layanan mendengarkan.
Peta ini penting karena setiap konfigurasi di episode 3 sampai 22 hanya masuk akal jika kalian tahu posisinya dalam alur. Kalian tidak perlu menghafal semua parameter — cukup pahami arsitekturnya, dan sisanya tinggal mengikuti pola.
Kita akan membahas alur email dari pengirim ke penerima, peran MTA dan MDA, komponen utama di server kalian, serta port dan protokol yang terlibat.
Email mengalir melalui beberapa "stasiun". Bayangkan mengirim paket lewat pos: kalian menulis surat (client), memasukkannya ke kantor pos terdekat (server pengirim), kantor pos mengirim ke kantor pos tujuan (relay), lalu kurir mengantarkannya ke rumah penerima (mailbox). Skema lengkapnya:
MUA (klien) -> MTA (kirim) -> MTA/relay (internet) -> MDA/LDA -> Mailbox -> MUA (baca via IMAP/POP3)
| | ^
+--- SMTP 587 ---+ |
MX record menunjuk
server penerima di port 25 Secara berurutan:
Dua server berbeda bertanggung jawab atas dua arah: server pengirim mengirim via SMTP, server penerima menyimpan via MDA dan melayani pembacaan via IMAP.
Istilah MTA dan MDA sering tertukar. Bedanya tegas:
Postfix sendiri bisa bertindak sebagai MDA untuk mailbox sistem (misalnya via mailbox_command), tapi untuk arsitektur modern kita serahkan delivery ke Dovecot LMTP — persis yang akan kalian rakit di episode 9.
Tiga komponen inti series ini menempati posisi berbeda dalam alur:
Selain itu ada pendukung yang akan kita pasang sepanjang series: MariaDB/PostgreSQL untuk virtual users, OpenDKIM untuk penandatanganan, SpamAssassin, dan ClamAV + Amavis untuk filtering.
Setiap layanan mendengarkan di port tertentu. Ini tabel yang akan kalian rujuk terus-menerus:
| Port | Protokol | Digunakan untuk | Enkripsi |
|---|---|---|---|
| 25 | SMTP | MTA ke MTA (internet) | STARTTLS |
| 465 | SMTPS | Submission klien (legacy) | TLS langsung |
| 587 | Submission | Klien mengirim email | STARTTLS |
| 143 | IMAP | Klien membaca mailbox | STARTTLS |
| 993 | IMAPS | Klien membaca mailbox | TLS langsung |
| 110 | POP3 | Klien unduh email | STARTTLS |
| 995 | POP3S | Klien unduh email | TLS langsung |
Aturan emasnya: port 25 hanya untuk trafik antar server. Klien kalian (Roundcube, Thunderbird, aplikasi HP) harus memakai 587 untuk mengirim dan 993 untuk membaca. Di episode 6 dan 16, aturan ini menjadi bagian dari konfigurasi sekaligus kebijakan firewall. Untuk melihat layanan mana yang sedang mendengarkan di port mana, jalankan ss -tlnp di server.
Dua konsep jaringan yang menentukan ke mana pesan pergi:
Memeriksa MX record dengan dig menjadi kebiasaan yang akan menemani sepanjang series:
dig MX example.com +shortJika output kosong, tambahkan record di panel DNS kalian — episode 5 akan membahas lengkap bersama SPF, DKIM, dan DMARC.
Satu nuansa penting: ketika Postfix menemukan MX record untuk sebuah domain, ia menyelesaikannya ke daftar host, lalu mencoba koneksi ke tiap host sesuai prioritas. Inilah mengapa prioritas MX yang lebih kecil (misalnya 10) akan selalu dicoba lebih dulu dibanding 20. Pemahaman ini menjelaskan banyak perilaku "server sibuk" yang tampak misterius di log Postfix.
Sebelum melangkah ke episode 3, bawa peta mental ini:
Setiap episode berikutnya tinggal mengisi detail pada stasiun yang berbeda — Postfix di episode 3 dan 4, DNS di 5, TLS di 6, database di 7, webmail di 8, dan seterusnya.
Episode 2 selesai. Inti yang harus dibawa pulang:
Sekarang peta sudah tergambar. Di episode 3 kita mulai praktik nyata: instalasi dan konfigurasi dasar Postfix — memasang paket, memahami main.cf, dan mengenal parameter myhostname, myorigin, mydestination, serta mynetworks. Sampai jumpa di episode 3!