ubuntu 20.04默认docker-compose版本太低了,需要升级
docker-compose --version
docker-compose version 1.25.0, build unknown
最新的docker-mailserver需要docker-compose 2.0+
./docker-compose --version
Docker Compose version v2.6.0
从https://github.com/docker-mailserver/docker-mailserver 里面获取docker-compose.yaml和mailserver.env,自带的配置不管用,需要按照自己的设置进行修改
先要把DNS配置好,
验证DNS解析配置是否正确
$ dig @1.1.1.1 +short MX abitacc.com
1 mail.abitacc.com.
$ dig @1.1.1.1 +short A mail.abitacc.com
47.97.122.181
$ dig @1.1.1.1 +short -x 47.97.122.181
mail.abitacc.com.
最后一条需要通过IP解析出域名,公网IP需要网络运营商(比如电信、移动等)添加PTR记录才行,因为我购买的阿里云的ECS,自动分配的公网IP,因此在阿里云平台下提交一个工单,阿里云售后会帮忙添加你需要的PTR
docker-compose.yaml:
services:
mailserver:
image: mailserver/docker-mailserver:latest
environment:
- HTTPS_PROXY=https://abitacc-mirror.top
container_name: mailserver
# Provide the FQDN of your mail server here (Your DNS MX record should point to this value)
hostname: mail.abitacc.com
env_file: mailserver.env
# More information about the mail-server ports:
# https://docker-mailserver.github.io/docker-mailserver/latest/config/security/understanding-the-ports/
ports:
- "25:25" # SMTP (explicit TLS => STARTTLS, Authentication is DISABLED => use port 465/587 instead)
- "143:143" # IMAP4 (explicit TLS => STARTTLS)
- "465:465" # ESMTP (implicit TLS)
- "587:587" # ESMTP (explicit TLS => STARTTLS)
- "993:993" # IMAP4 (implicit TLS)
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/
- /etc/localtime:/etc/localtime:ro
restart: always
stop_grace_period: 1m
cap_add:
- NET_ADMIN # For Fail2Ban to work
healthcheck:
test: "ss --listening --tcp | grep -P 'LISTEN.+:smtp' || exit 1"
timeout: 3s
retries: 0
如果mailserver.env不修改的话,docker-mailserver能够起来,也能够往外发送出去邮件,但是接受不到外部发送进来的邮件,外部发送邮件时会提示如下错误:
Recipient address rejected: Message rejected due to: SPF fail - not authorized
修改mailserver.env启用Rspamd即可解决上述问题:
重新拉起docker-mailserver并添加用户
docker-compose up -d
# 添加用户
docker exec -ti mailserver setup email add admin@abitacc.com
docker exec -ti mailserver setup email add wangxinlu@abitacc.com
# 查看log
docker exec -ti mailserver setup debug show-mail-logs
# 查看help
docker exec -ti mailserver setup help
官方文档:https://docker-mailserver.github.io/docker-mailserver/latest/config/environment/