Tutorial Lengkap Membuat SMTP Relay Server dengan Mailcow + Docker

Panduan ini membahas langkah demi langkah membuat SMTP relay server dengan Mailcow berbasis Docker. Dengan konfigurasi ini, Anda dapat mengirim ribuan email secara aman, stabil, dan efisien, sambil mempertahankan reputasi domain yang baik. ๐ช
1๏ธโฃ Persiapan Server dan Domain
Pastikan Anda memiliki:
- ๐ฅ VPS/Dedicated Server: CPU minimal 2 core, RAM 4GB+, SSD 40GB+
- ๐ง OS: Ubuntu 24.04 LTS
- ๐ Domain aktif dengan pengaturan DNS lengkap
Setting DNS di Server SMTP Relay:
- ๐น A: smtp.example.com โ IP_SERVER
- ๐น MX: example.com โ smtp.example.com (priority 10)
- ๐น PTR: IP_SERVER โ smtp.example.com (atur di panel provider IP)
2๏ธโฃ Instalasi Docker & Mailcow
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
cd /opt
git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized
./generate_config.sh
- Hostname: smtp.example.com
- Timezone: sesuai lokasi
docker compose pull
docker compose up -d
3๏ธโฃ Konfigurasi HTTPS (SSL) ๐
Mailcow otomatis mengaktifkan SSL dari Let’s Encrypt jika domain mengarah ke server dan port 80/443 terbuka.
4๏ธโฃ Menambahkan Domain di Mailcow UI ๐จ
- Login ke https://smtp.example.com/admin
- Masuk menu Domains โ Add domain
- Isi domain Anda, aktifkan DKIM (2048 bit), centang Active โ
- Tambahkan record DKIM, SPF, dan DMARC sesuai panduan di UI
5๏ธโฃ Membuat Akun SMTP ๐ค
- Masuk menu Mailboxes โ Add mailbox
- Buat username (contoh: [email protected]) dengan password kuat ๐
- Atur quota sesuai kebutuhan, centang IMAP, SMTP, dan Sieve
6๏ธโฃ Tuning Performa & Keamanan โ๏ธ
Postfix:
sudo mkdir -p data/conf/postfix
sudo bash -c 'cat > data/conf/postfix/extra.cf <<EOF
default_process_limit = 200
smtp_destination_concurrency_limit = 50
smtp_destination_rate_delay = 0s
EOF'
docker compose restart postfix-mailcow
Rspamd Rate Limit (tanpa batas tapi aman):
sudo mkdir -p data/conf/rspamd/local.d
sudo bash -c 'cat > data/conf/rspamd/local.d/ratelimit.conf <<EOF
rates {
per_user = {
key = "user.lower";
bucket = [
{ burst = 1000; rate = "600 / 1min"; }
];
message = "Guard: minute rate limit exceeded for this user";
}
per_ip = {
key = "ip";
bucket = [
{ burst = 600; rate = "400 / 1min"; }
];
message = "Guard: minute rate limit exceeded for this IP";
}
}
EOF'
sudo bash -c 'cat > data/conf/rspamd/scores.d/ratelimit.conf <<EOF
symbols = {
RATELIMITED = { weight = 0.0; description = "Minute guard telemetry only"; };
}
EOF'
docker compose exec rspamd-mailcow rspamadm configtest
docker compose restart rspamd-mailcow
Perbaikan MAILCOW_WHITE (jika muncul error dependency):
sudo mkdir -p data/conf/rspamd/maps.d
sudo touch data/conf/rspamd/maps.d/whitelist.map
sudo bash -c 'cat > data/conf/rspamd/local.d/multimap.conf <<EOF
MAILCOW_WHITE {
type = "from";
filter = "email:addr";
map = "$LOCAL_CONFDIR/maps.d/whitelist.map";
description = "Global whitelist (UI)";
group = "policies";
action = "accept";
}
EOF'
docker compose exec rspamd-mailcow rspamadm configtest
docker compose restart rspamd-mailcow
7๏ธโฃ Pengujian SMTP ๐งช
swaks --server smtp.example.com --auth LOGIN --au [email protected] --ap 'PASSWORD' --to [email protected] --from [email protected]


Atau kirim via Webmail SOGo: https://smtp.example.com/SOGo
8๏ธโฃ Tips Keamanan ๐
- Gunakan password yang kuat ๐ช
- Buat akun berbeda untuk setiap pengguna ๐ฅ
- Pantau log secara rutin:
docker compose logs -f postfix-mailcow
docker compose logs -f rspamd-mailcow | grep RATELIMIT

9๏ธโฃ Manfaat Konfigurasi Ini ๐
- Mampu mengirim ribuan email per menit sesuai pengaturan aman ๐
- 100% open-source dan self-hosted
- Mendukung multi-user ๐จโ๐ป
- Reputasi domain/IP terjaga dengan proses warm-up ๐ฅ
Dengan konfigurasi ini, Anda memiliki SMTP relay server profesional yang aman, powerful, dan siap digunakan untuk keperluan email marketing maupun komunikasi skala besar. ๐ฏ

Buat kamu yang lagi Deploy aplikasi dengan Next.js dan pengen jalan di Kubernetes dengan domain custom + SSL otomatis, artikel…

๐ Apa itu Next.js ? Next.js adalah framework React yang populer untuk membangun aplikasi web modern. Dengan fitur SSR (Server…
Thankyou mas
Wih mantap
okeyy
OK
iya sama sama