Masdika Loading..
Masdika.ID

DevOps Engineer

Cloud Engineer

System Administrator

  • Home
  • Portfolio
  • Services
  • Resume
  • Skills
  • Blog
  • Contact
Masdika.ID

DevOps Engineer

Cloud Engineer

System Administrator

Download CV

Recent Posts

  • Dari Laptop Bekas Jadi Server Pribadi: Cara Membangun Home Server Murah Menggunakan ISP MyRepublic dengan Public IP
  • Pembuatan Subnet dan Alokasi IP Address pada Amazon Web Service VPC
  • Instalasi dan Konfigurasi AWS CLI pada EC2 (Lab Guide)
  • Membangun Arsitektur Web + Database Highly Available di AWS (RDS Multi-AZ)
  • Cara Reset Password OpenBSD di Proxmox via VNC

Recent Comments

  1. Alif on Jangan Gunakan latest Tag pada Docker Images! Ini Alasannya
  2. Sahrull on Panduan Lengkap Anti-DDoS: Installasi Iptables, Hardening, dan Cloudflare Proxy
  3. VSTRA on Cara Cerdas Menguasai Kubernetes (K8s): Panduan Lengkap Orkestrasi Kontainer untuk Developer Modern
  4. Rikiy on Cara Mudah Deploy Website Node.js Menggunakan Docker
  5. Masdika.BIZ.ID on Disaster Recovery Cluster (DRC) WordPress dengan MariaDB Galera dan Load Balancer Caddy

Categories

  • Tutorial

Masdika.ID

  • About
  • Terms & Conditions
  • Privacy Policy
BLOG POST

Tutorial Lengkap Membuat SMTP Relay Server dengan Mailcow + Docker

August 14, 2025 Tutorial by Masdika.ID
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: me@example.com) 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 me@example.com --ap 'PASSWORD' --to target@gmail.com --from me@example.com

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. ๐ŸŽฏ

Share:
Tags: dockermailcowsmtp relay
Related Posts
VM vs Container vs Pod – Perbedaan Lengkap untuk Cloud & DevOps!

Dalam dunia Cloud Computing dan DevOps, tiga istilah yang paling sering kita dengar adalah Virtual Machine (VM), Container, dan Pod….

Deploy Go REST API di Kubernetes (K3s) dengan PostgreSQL, SSL Cloudflare, dan Autoscaling

Artikel ini akan membahas langkah end-to-end untuk membangun aplikasi Go REST API, membuat image Docker, lalu melakukan deployment di Kubernetes…

Post navigation

Prev
Next
Write a comment Cancel Reply


ยฉ 2025 www.masdika.id โ€” Semua hak cipta dilindungi