Gas langsung ke pembahasan.
Kalau kamu butuh mail server sendiri di VPS Ubuntu buat kirim dan terima email, salah satu cara paling praktis sekarang adalah pakai Docker Mail Server. Setup-nya relatif simpel, gak perlu install banyak service manual seperti Postfix, Dovecot, dan OpenDKIM satu per satu.
Ada beberapa image Docker buat mail server. Bedanya, docker-mailserver/docker-mailserver yang kita pakai di sini lebih simple dan minimal, cocok kalau kamu mau setup cepat tanpa banyak fitur tambahan. Sedangkan jeboehm/docker-mailserver sudah bundling webmail dan panel admin bawaan, kalau kamu butuh interface manajemen langsung, cek juga tutorial Cara Install Jeboehm Docker Mail Server.
Tutorial ini menggunakan project docker-mailserver, sebuah mail server lengkap berbasis Docker yang sudah include:
SMTP server
IMAP server
DKIM
SPF support
SSL support
Anti spam basic
Kalau setup DNS benar, email kamu sudah bisa kirim dan terima seperti mail server normal.
Spek Minimum Server
Sebelum mulai, pastikan VPS kamu minimal punya spesifikasi berikut:
Spek Minimum
- 1 vCore
- 2GB RAM (No ClamAV)
- Swap enabled for the container
Port yang Wajib Dibuka
Pastikan port berikut sudah dibuka di firewall atau security group VPS.
143, 25, 465, 587, 993
Penjelasan singkat:
- 25 SMTP server
- 587 SMTP submission
- 465 SMTP SSL
- 143 IMAP
- 993 IMAP SSL
Tanpa port ini, email tidak akan bisa dikirim atau diterima.
Siapkan Domain dan DNS
Siapkan domain atau subdomain yang akan dijadikan hostname mail server.
Contoh kita pakai:
mail.domainkamu.com
Lalu buat DNS record seperti berikut.
| Host | Record | Value |
| @ | A | Server IP |
| mail.domain | A | Server IP |
| @ | MX | mail.example.com priority 10 |
| autodiscover.domain | CNAME | domain |
| autoconfig.domain | CNAME | domain |
Jika @ tidak support seperti cpanel
@ dapat di ganti nama domain
Pastikan Docker Sudah Terinstall
Tutorial ini menggunakan Docker.
Kalau Docker belum ada di VPS kamu, silakan install dulu.
Di blog ini juga sudah ada artikel cara instal Docker di Ubuntu.
Kalau sudah siap, kita lanjut instal mail servernya.
Download Docker Mail Server
Pertama kita download file konfigurasi dari repository resmi.
Jalankan perintah berikut di VPS:
DMS_GITHUB_URL="https://raw.githubusercontent.com/docker-mailserver/docker-mailserver/master"
wget "${DMS_GITHUB_URL}/compose.yaml"
wget "${DMS_GITHUB_URL}/mailserver.env"

Setalah itu pastikan sudah dapat 2 file compose.yaml dan mailserver.env
Edit Hostname Mail Server
Sekarang kita edit file docker compose.
nano compose.yaml
Cari bagian hostname, lalu ganti dengan domain mail server kamu.
mail. bisa di ganti bebas asal konsisten
misal inbox.domain.kamu atau pesan.domain.kamu

lalu CTRL + X terus ENTER buat simpan ya
oke saat nya jalankan docker composenya untuk instal mail server
docker compose up -d
tunggu sampai selesai

JIka sudah. Sekarang kita buat 1 email agar sistem bisa berjalan dengan jalankan perintah ini
docker exec -ti mailserver setup email add usernamemail@domain.kamu
habis itu akan di minta buat password.
Buat DKIM key untuk DNS Zone
docker exec -ti mailserver setup config dkim
Hasilnya bisa di buka dengan perintah ini
cat docker-data/dms/config/opendkim/keys/ganti-domain-kamu/mail.txt
Update DNS Zone dengan tambahkan 2 ini
| Host | Record | Value |
| @ | TXT | v=spf1 a mx ip4:IPSERVERMU -all |
| _dmarc | TXT | v=DMARC1; p=quarantine; adkim=r; aspf=r; pct=100 |
| mail._domainkey.domainkamu | TXT | v=DKIM1; h=sha256; k=rsa; p=PASTE dari DKIM |
Sekarang tinggal buat SSL untuk domain emailnya
jalankan perintah ini
docker run --rm -it \
-v "${PWD}/docker-data/certbot/certs/:/etc/letsencrypt/" \
-v "${PWD}/docker-data/certbot/logs/:/var/log/letsencrypt/" \
-p 81:80 \
certbot/certbot certonly --standalone -d mail.domain.kamu
nanti akan di minta masukan email yg valid untuk notifikasi jika ssl mau habis atau auto perpanjang

Tunggu sampai selesai
Buka lagi compose.yaml
nano compose.yaml
Tambahkan 2 baris ini didalam Volume
- /etc/letsencrypt:/etc/letsencrypt
- ./docker-data/certbot/certs/:/etc/letsencrypt

Buka file mailserver.env dan edit bagian SSL
nano mailserver.env
SSL_TYPE=manual
SSL_CERT_PATH=/etc/letsencrypt/live/mail.domainkamu/fullchain.pem
SSL_KEY_PATH=/etc/letsencrypt/live/mail.domainkamu/privkey.pem

Jalankan Ulang Docker compose untuk update SSL nya
docker compose up -d
Tunggu sampai selesai
Sekarang mail server sudah berjalan dengan SSL dan bisa di coba dengan login atau di test IMAP tester atau SMTP tester
Email Server Test | SMTP Exchange IMAP POP3 Server Testing
Masukkan Login isi dengan email yg di buat td dan passwordnya
lalu pilih type IMAP atau SMTP
IMAP port 993 untuk email masuk
SMTP port 587untuk email keluar
Bonus perintah untuk cek
openssl s_client -connect mail.domainkamu:993 -quiet
openssl s_client -connect mail.domainkamu:587 -starttls smtp -crlf
Untuk cek email list yg sudah di buat
docker exec -it mailserver setup email list
Test Login email di dalam VPS
docker exec -it mailserver doveadm auth test username@domainkamu passwordnya
Kendala yang Sering Muncul
- Port 25/587 diblokir provider VPS
Banyak provider cloud memblokir port ini secara default untuk mencegah spam. Cek ke support provider apakah port sudah dibuka untuk akun kamu. - DNS belum propagasi
Record MX/SPF/DKIM butuh waktu untuk propagasi, bisa 15 menit sampai beberapa jam. Cek statusnya denganmxtoolbox.com. - Email masuk folder spam
Biasanya karena SPF/DKIM/DMARC belum settle sempurna atau IP VPS kena blacklist. Cek reputasi IP dimxtoolbox.com/blacklists.aspx.
Penutup
Segitu aja langkah-langkah instal Docker mail server di Ubuntu VPS. Kalau semua langkah di atas sudah diikuti dengan benar, email server kamu sudah bisa kirim dan terima email sendiri tanpa bergantung ke pihak ketiga. Kalau ada error yang belum kebahas di sini, drop komentar aja bro.


























