version: '3.7' # https://hub.docker.com/r/mailserver/docker-mailserver # https://docker-mailserver.github.io/docker-mailserver/edge/examples/tutorials/basic-installation/ # https://github.com/docker-mailserver/docker-mailserver # https://github.com/docker-mailserver/docker-mailserver/blob/master/docs/content/config/advanced/mail-sieve.md # create account: task srv:mail-setup -- email add @ networks: mail: name: mail services: mail: image: mailserver/docker-mailserver:11 container_name: mail restart: "${RESTART:-no}" hostname: mail domainname: ${BASE_DOMAIN} environment: - SSL_TYPE=letsencrypt # 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 # 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=connected-networks - ONE_DIR=1 - ENABLE_AMAVIS=0 - ENABLE_POSTGREY=0 - ENABLE_CLAMAV=0 - ENABLE_SPAMASSASSIN=0 - ENABLE_MANAGESIEVE=1 - ENABLE_FAIL2BAN=0 - TZ=${TIMEZONE} - POSTMASTER_ADDRESS=postmaster@${BASE_DOMAIN} ports: - "25:25" - "143:143" - "587:587" - "465:465" - "993:993" - "4190:4190" # managesieve volumes: # config - ${BASE_DIR:-/srv}/mail/config:/tmp/docker-mailserver/ # Mail data - ${BASE_DIR:-/srv}/mail/mail-data:/var/mail/ - ${BASE_DIR:-/srv}/mail/mail-state:/var/mail-state/ - ${BASE_DIR:-/srv}/mail/mail-logs:/var/log/mail/ # certificates - ${CERTS_DIR}/mail.${BASE_DOMAIN}/mail.${BASE_DOMAIN}.crt:/etc/letsencrypt/live/mail.${BASE_DOMAIN}/fullchain.pem:ro - ${CERTS_DIR}/mail.${BASE_DOMAIN}/mail.${BASE_DOMAIN}.key:/etc/letsencrypt/live/mail.${BASE_DOMAIN}/privkey.pem:ro # - ${CERTS_DIR}/mail.${BASE_DOMAIN}:/etc/letsencrypt/live/ networks: - mail # cap_add: # - NET_ADMIN # For Fail2Ban to work