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, silahkan 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