Halo, kalau kamu merasa tulisan saya ngebantu, kamu bisa ucapkan terima kasih lewat saweria.

If you feel this website help you, you can donate at saweria.



Mail Server Murah Meriah dengan docker-mailserver

Buat siapa docker-mailserver?

  1. Yang butuh email server cepet

  2. Lagi belajar buat email server

  3. Yang punya server dengan spek “pas-pasan”

Berikut detail tools yang saya gunakan di tutorial

  1. Docker version 23.0.1

  2. Ubuntu Server 22.04.2 LTS dengan Spesifikasi 1 CPU & 1 GB RAM

  3. docker-mailserver v11.3.1

  4. SMTP Relay mailjet, karena biasanya di semua cloud provider, mail related port (25, 465, 587) di block.


How To

Setup docker-mailserver

  1. Buat file docker-compose.yml
version: '3.8'

services:
  mailserver:
    image: docker.io/mailserver/docker-mailserver:latest
    container_name: mailserver
    hostname: mail
    # Change this to your domain, it is used for your email accounts (eg: user@example.com):
    domainname: domainkamu.com
    ports:
      #
      - "25:25"
      - "587:587"
      - "465:465"
      - "143:143"
      - "993:993"
    volumes:
      - ./docker-data/dms/mail-data/:/var/mail/
      - ./docker-data/dms/mail-state/:/var/mail-state/
      - ./docker-data/dms/mail-logs/:/var/log/mail/
      - ./docker-data/dms/config/:/tmp/docker-mailserver/
      # The "from" path will vary based on where your certs are locally:
      - ./docker-data/certbot/certs/:/etc/letsencrypt/
      - /etc/localtime:/etc/localtime:ro
        #- ./docker-data/dms/config/dovecot/15-mailboxes.conf:/etc/dovecot/conf.d/15-mailboxes.conf:ro
      # - ./docker-data/dms/config/dovecot/10-master.conf:/etc/dovecot/conf.d/10-master.conf

    environment:
      # at first, better to disable this
      # you can enable after successfully setup user on mail client
      - ENABLE_FAIL2BAN=0
      # Using letsencrypt for SSL/TLS certificates
      - SSL_TYPE=letsencrypt
      # Allow sending emails from other docker containers
      # Beware creating an Open Relay: https://docker-mailserver.github.io/docker-mailserver/edge/config/environment/#permit_docker
      - PERMIT_DOCKER=network
      # All env below are default settings:
      - ONE_DIR=1
      - ENABLE_POSTGREY=0
      - ENABLE_CLAMAV=0
      - ENABLE_SPAMASSASSIN=0
      # You may want to enable this: https://docker-mailserver.github.io/docker-mailserver/edge/config/environment/#spoof_protection
      # See step 8 below, which demonstrates setup with enabled/disabled SPOOF_PROTECTION:
      - SPOOF_PROTECTION=0
      - RELAY_HOST=in-v3.mailjet.com
      - RELAY_PORT=587
      - RELAY_USER=YourID
      - RELAY_PASSWORD=YourKey
    cap_add:
      - NET_ADMIN # For Fail2Ban to work
                                                  
  1. Jalankan docker-composer up -d.

  2. Setup MX & SPF Record

MX Record

MX Record

SPF Record

SPF Record

  1. Buat DKIM Keys docker exec mailserver setup config dkim, copykan dan buat 1 record TXT
DKIM Record

DKIM Record

  1. Setup Lets Encrypt SSL, cek di dokumentasi saja ya karena terlalu panjang

Catatan:

  1. JANGAN LUPA BUKA PORT YANG ADA DI FILE docker-compose!

  2. docker-mailserver ini punya dokumentasi yang lengkap, silakan cek di dokumentasi mereka kalau kalian mengalami kesulitan

Thunderbird Setup

Thunderbird Setup


Command di docker-mailserver

  1. Buat user baru, docker exec mailserver setup email add saya@domainkamu.com password1234

  2. List user, docker exec mailserver setup email list

  3. Unban IP (kalau fail2ban di enable), docker exec mailserver fail2ban unban 123.123.123.123

  4. Blacklist email docker exec -it mailserver setup email restrict add send wblidiyl@sharklasers.com / docker exec -it mailserver setup email restrict add receive wblidiyl@sharklasers.com

  5. List blacklist email docker exec -it mailserver setup email restrict list`


Referensi:

Docker-mailserver Documentation