
DockerMailserver部署文档
简介
Docker-mailserver 是一个生产就绪的全功能邮件服务器。它提供完整的邮件服务解决方案,包括:
SMTP/IMAP/POP3 服务
反垃圾邮件和防病毒保护
多域名支持
TLS 加密
Web 管理界面
DNS配置
为邮件服务器配置以下 DNS 记录(以下以我自己域名为例nxplus.cn):
A 记录:
mail.nxplus.cn. IN A YOUR_SERVER_IP
MX 记录:
nxplus.cn. IN MX 10 mail.nxplus.cn.
SPF 记录:
nxplus.cn. IN TXT "v=spf1 mx a:mail.nxplus.cn ~all"
DKIM 记录(部署后生成,在之后容器部署成功后,终端运行获取):
docker exec -it <CONTAINER NAME> setup config dkim [nukix@nukixPC mailserver]# cat /opt/mailserver/docker-data/dms/config/opendkim/keys/mail.example.com/mail.txt mail._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; " "p=MIIBIjANBgkqhkiG9w0BAQEFACAQ8AMIIBCgKCAQEAaH5KuPYPSF3Ppkt466BDMAFGOA4mgqn4oPjZ5BbFlYA9l5jU3bgzRj3l6/Q1n5a9lQs5fNZ7A/HtY0aMvs3nGE4oi+LTejt1jblMhV/OfJyRCunQBIGp0s8G9kIUBzyKJpDayk2+KJSJt/lxL9Iiy0DE5hIv62ZPP6AaTdHBAsJosLFeAzuLFHQ6USyQRojefqFQtgYqWQ2JiZQ3" "iqq3bD/BVlwKRp5gH6TEYEmx8EBJUuDxrJhkWRUk2VDl1fqhVBy8A9O7Ah+85nMrlOHIFsTaYo9o6+cDJ6t1i6G1gu+bZD0d3/3bqGLPBQV9LyEL1Rona5V7TJBGg099NQkTz1IwIDAQAB" ) ; ----- DKIM key mail for mail.example.com
DMARC 记录:
_dmarc IN TXT v=DMARC1; p=none; sp=none;
创建容器分组
在系统任意位置创建一个文件夹。
mkdir -p /opt/mailserver cd /opt/mailserver
创建
docker-compose.yaml
services: mailserver: image: mailserver/docker-mailserver:${VERSION} container_name: ${CONTAINER_NAME} deploy: resources: limits: cpus: ${CPUS} memory: ${MEMORY_LIMIT} hostname: ${MAIL_HOSTNAME} ports: - ${HOST_IP}:${SMTP_PORT}:25 - ${HOST_IP}:${SMTP_SSL_PORT}:465 - ${HOST_IP}:${NSMTP_SSL_PORT}:587 - ${HOST_IP}:${IMAP_PORT}:143 - ${HOST_IP}:${IMAP_SSL_PORT}:993 volumes: - ${APP_PATH}/data/mail-data/:/var/mail/ - ${APP_PATH}/data/mail-state/:/var/mail-state/ - ${APP_PATH}/data/mail-logs/:/var/log/mail/ - ${APP_PATH}/data/config/:/tmp/docker-mailserver/ - ${APP_PATH}/data/certs/:/tmp/dms/custom-certs/:ro # 挂在证书的路径,之后如果需要,则把证书放这个路径下 - /etc/localtime:/etc/localtime:ro restart: always environment: - ENABLE_RSPAMD=1 - ENABLE_CLAMAV=1 - ENABLE_FAIL2BAN=1 - SSL_TYPE=manual # SSL服务类型 - SSL_CERT_PATH=/tmp/dms/custom-certs/ssl.crt # 自己的ssl证书 - SSL_KEY_PATH=/tmp/dms/custom-certs/ssl.key # 自己的ssl证书 labels: createdBy: "app" networks: - own networks: own: external: true
创建
.env
VERSION=latest CONTAINER_NAME=mailserver HOST_IP=0.0.0.0 MAIL_HOSTNAME=mail.nxplus.cn SMTP_PORT=25 SMTP_SSL_PORT=465 NSMTP_SSL_PORT=587 IMAP_PORT=143 IMAP_SSL_PORT=993 CPUS=1 MEMORY_LIMIT=512MB APP_PATH=/www/dk_app/mailserver
启动 mailserver服务
# docker-compose.yaml和.env在同目录下可直接运行 docker-compose up -d # 查看导入变量的情况(可选):使用 config 命令查看解析后的应用程序配置,该命令会将相关配置打印到终端 docker-compose config # 如果 .env 文件不在 docker-compose.yaml 文件的同级目录,可以使用 --env-file 选项指定其路径。 docker-compose --env-file /path/to/your/.env up -d
实时查看日志:
docker-compose logs -f
邮箱管理
添加邮箱账户:
docker exec -ti mailserver setup email add user@nxplus.cn password123
删除邮箱账户:
docker exec -ti mailserver setup email del user@nxplus.cn
更新密码:
docker exec -ti mailserver setup email update user@nxplus.cn newpassword
列出所有账户:
docker exec -ti mailserver setup email list
有些其他配置(个人项目搭配使用)
# 添加邮箱账户: docker exec -ti mailserver setup email add admin@nxplus.cn 密码 # 添加邮件转发: docker exec -ti mailserver setup alias add @nxplus.cn admin@nxplus.cn
安全配置
配置 DKIM:
docker exec -ti mailserver setup config dkim
配置 SSL 证书:
docker exec -ti mailserver setup config ssl
配置反垃圾邮件规则:
docker exec -ti mailserver setup config spamassassin