
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本仓库已迁移至Docker Mailserver组织,原仓库不再维护。请访问https://github.com/docker-mailserver/docker-mailserver%E8%8E%B7%E5%8F%96%E6%9C%80%E6%96%B0%E4%BF%A1%E6%81%AF%E3%80%81%E6%8F%90%E4%BA%A4%E9%97%AE%E9%A2%98%E6%88%96%E5%8F%82%E4%B8%8E%E8%AE%A8%E8%AE%BA%E3%80%82
一个功能完整但配置简单的邮件服务器镜像,无需数据库,仅通过配置文件管理,支持SMTP、IMAP、反垃圾邮件、防病毒等核心功能,易于部署和升级。
前提条件
快速部署步骤
bashwget https://raw.githubusercontent.com/tomav/docker-mailserver/master/setup.sh wget https://raw.githubusercontent.com/tomav/docker-mailserver/master/docker-compose.yml wget https://raw.githubusercontent.com/tomav/docker-mailserver/master/mailserver.env wget -O .env https://raw.githubusercontent.com/tomav/docker-mailserver/master/compose.env chmod a+x ./setup.sh
.env(Docker Compose配置)和mailserver.env(邮件服务器配置)bashdocker-compose up -d mail # 添加邮箱账户 ./setup.sh email add user@domain.com password # 添加别名(如postmaster指向用户) ./setup.sh alias add postmaster@domain.com user@domain.com # 生成DKIM密钥(需添加到域名DNS解析) ./setup.sh config dkim
Docker Compose示例
基础配置
yamlversion: '3.8' services: mail: image: docker.io/tvial/docker-mailserver:latest hostname: mail domainname: domain.com container_name: mail ports: - "25:25" # SMTP - "143:143" # IMAP - "587:587" # ESMTP - "993:993" # IMAPS volumes: - maildata:/var/mail - mailstate:/var/mail-state - maillogs:/var/log/mail - ./config/:/tmp/docker-mailserver/ environment: - ENABLE_SPAMASSASSIN=1 - SPAMASSASSIN_SPAM_TO_INBOX=1 - ENABLE_CLAMAV=1 - ENABLE_FAIL2BAN=1 - ENABLE_POSTGREY=1 - ONE_DIR=1 - DMS_DEBUG=0 cap_add: - NET_ADMIN - SYS_PTRACE restart: always volumes: maildata: mailstate: maillogs:
LDAP集成配置
yamlversion: '3.8' services: mail: image: docker.io/tvial/docker-mailserver:latest hostname: mail domainname: domain.com container_name: mail ports: - "25:25" - "143:143" - "587:587" - "993:993" volumes: - maildata:/var/mail - mailstate:/var/mail-state - maillogs:/var/log/mail - ./config/:/tmp/docker-mailserver/ environment: - ENABLE_SPAMASSASSIN=1 - SPAMASSASSIN_SPAM_TO_INBOX=1 - ENABLE_CLAMAV=1 - ENABLE_FAIL2BAN=1 - ENABLE_POSTGREY=1 - ONE_DIR=1 - DMS_DEBUG=0 - ENABLE_LDAP=1 - LDAP_SERVER_HOST=ldap - LDAP_SEARCH_BASE=ou=people,dc=localhost,dc=localdomain - LDAP_BIND_DN=cn=admin,dc=localhost,dc=localdomain - LDAP_BIND_PW=admin - LDAP_QUERY_FILTER_USER=(&(mail=%s)(mailEnabled=TRUE)) - LDAP_QUERY_FILTER_GROUP=(&(mailGroupMember=%s)(mailEnabled=TRUE)) - LDAP_QUERY_FILTER_ALIAS=(|(&(mailAlias=%s)(objectClass=PostfixBookMailForward))(&(mailAlias=%s)(objectClass=PostfixBookMailAccount)(mailEnabled=TRUE))) - LDAP_QUERY_FILTER_DOMAIN=(|(&(mail=*@%s)(objectClass=PostfixBookMailAccount)(mailEnabled=TRUE))(&(mailGroupMember=*@%s)(objectClass=PostfixBookMailAccount)(mailEnabled=TRUE))(&(mailalias=*@%s)(objectClass=PostfixBookMailForward))) - DOVECOT_PASS_FILTER=(&(objectClass=PostfixBookMailAccount)(uniqueIdentifier=%n)) - DOVECOT_USER_FILTER=(&(objectClass=PostfixBookMailAccount)(uniqueIdentifier=%n)) - ENABLE_SASLAUTHD=1 - SASLAUTHD_MECHANISMS=ldap - SASLAUTHD_LDAP_SERVER=ldap - SASLAUTHD_LDAP_BIND_DN=cn=admin,dc=localhost,dc=localdomain - SASLAUTHD_LDAP_PASSWORD=admin - SASLAUTHD_LDAP_SEARCH_BASE=ou=people,dc=localhost,dc=localdomain - SASLAUTHD_LDAP_FILTER=(&(objectClass=PostfixBookMailAccount)(uniqueIdentifier=%U)) - POSTMASTER_ADDRESS=postmaster@localhost.localdomain - POSTFIX_MESSAGE_SIZE_LIMIT=100000000 cap_add: - NET_ADMIN - SYS_PTRACE restart: always volumes: maildata: mailstate: maillogs:
config/opendkim/keys/domain.tld/mail.txt内容添加到域名DNS解析config/user-patches.sh脚本实现(启动前执行)docker-compose down → docker pull tvial/docker-mailserver:<版本> → docker-compose up -d mail.env中添加SELINUX_LABEL=-Z并在setup.sh命令中加入-Z参数以下是 tvial/docker-mailserver 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



来自真实用户的反馈,见证轩辕镜像的优质服务