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

  • Panduan Lengkap Install K3s di Ubuntu dan Konfigurasi Remote Kubectl dari Windows PC/Laptop
  • Deploy Next.js di Kubernetes dengan Ingress + SSL Let’s Encrypt
  • Tutorial Lengkap: Membuat Cloudflare API Token & Menggunakannya di Kubernetes dengan cert-manager
  • Panduan Lengkap Deploy WordPress + Redis + MySQL di Kubernetes dengan SSL Cloudflare
  • Panduan Lengkap Install & Konfigurasi Ceph 3 Node dengan RGW (S3 Compatible)

Recent Comments

  1. Masdika.ID on Tutorial Lengkap: Membuat Cloudflare API Token & Menggunakannya di Kubernetes dengan cert-manager
  2. Sahrull on Tutorial Lengkap: Membuat Cloudflare API Token & Menggunakannya di Kubernetes dengan cert-manager
  3. Masdika.ID on Tutorial Lengkap: Membuat Cloudflare API Token & Menggunakannya di Kubernetes dengan cert-manager
  4. Sahrull on Tutorial Lengkap: Membuat Cloudflare API Token & Menggunakannya di Kubernetes dengan cert-manager
  5. Riyan on Cara Kirim Notifikasi Otomatis SSL Expired via Email (Lengkap + Bash Script)

Categories

  • Tutorial

Masddika.BIZ.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: [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. ๐ŸŽฏ

Share:
Tags: dockermailcowsmtp relay
Related Posts
Deploy Next.js di Kubernetes dengan Ingress + SSL Let’s Encrypt

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

Deploy Next.js di Docker (Frontend Only) dengan pnpm

๐ŸŒŸ Apa itu Next.js ? Next.js adalah framework React yang populer untuk membangun aplikasi web modern. Dengan fitur SSR (Server…

Post navigation

Prev
Next
5 Comments
  • Didik 7:59 am August 15, 2025 Reply

    Thankyou mas

  • Deri 8:04 am August 15, 2025 Reply

    Wih mantap

    • Masdika.ID 2:45 pm August 25, 2025 Reply

      okeyy

    • Masdika.ID 3:34 pm August 25, 2025 Reply

      OK

    • Masdika.ID 3:26 pm August 27, 2025 Reply

      iya sama sama

Write a comment Cancel Reply


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