
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本项目是https://github.com/hardware/mailserver%E7%9A%84%E5%88%86%E6%94%AF%E7%89%88%E6%9C%AC%EF%BC%8C%E6%97%A8%E5%9C%A8%E4%B8%BA%E8%BF%99%E4%B8%AA%E4%BC%98%E7%A7%80%E7%9A%84%E9%82%AE%E4%BB%B6%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%A1%B9%E7%9B%AE%E6%8F%90%E4%BE%9B%E6%9C%80%E5%9F%BA%E6%9C%AC%E7%9A%84%E7%BB%B4%E6%8A%A4%E6%94%AF%E6%8C%81%E3%80%82%E6%B7%B1%E8%A1%A8%E6%84%9F%E8%B0%A2%E3%80%82
请检查您的系统是否满足以下最低要求:
MariaDB/PostgreSQL和Redis在同一主机
| 类型 | 无ClamAV | 有ClamAV |
|---|---|---|
| CPU | 1 GHz | 1 GHz |
| 内存 | 1.5 GiB | 2 GiB |
MariaDB/PostgreSQL和Redis在另一服务器
| 类型 | 无ClamAV | 有ClamAV |
|---|---|---|
| CPU | 1 GHz | 1 GHz |
| 内存 | 512 MiB | 1 GiB |
返回目录 :arrow_up_small:
清理环境
请移除服务器上运行的任何Web服务器和邮件服务。建议使用您首选发行版的全新安装。如果使用Debian,请记得移除默认的MTA Exim4:
# apt-get purge exim4*
同时确保没有其他应用干扰邮件服务器配置:
# netstat -tulpn | grep -E -w '25|80|110|143|443|465|587|993|995|4190'
如果此命令返回任何结果,请移除或停止在该端口上运行的应用。
端口开放
如果您使用防火墙,请根据需要开放以下端口:
| 服务 | 软件 | 协议 | 端口 |
|---|---|---|---|
| SMTP | Postfix | TCP | 25 |
| HTTP | Nginx | TCP | 80 |
| POP3 | Dovecot | TCP | 110 |
| IMAP | Dovecot | TCP | 143 |
| HTTPS | Nginx | TCP | 443 |
| SMTPS | Postfix | TCP | 465 |
| Submission | Postfix | TCP | 587 |
| IMAPS | Dovecot | TCP | 993 |
| POP3S | Dovecot | TCP | 995 |
| ManageSieve | Dovecot | TCP | 4190 |
DNS设置
建议使用https://github.com/hardware/nsd-dnssec%E4%BD%9C%E4%B8%BA%E5%B8%A6DNSSEC%E5%8A%9F%E8%83%BD%E7%9A%84%E6%9D%83%E5%A8%81%E5%90%8D%E7%A7%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E3%80%82NSD%E6%98%AF%E4%B8%80%E4%B8%AA%E4%BB%85%E6%9D%83%E5%A8%81%E3%80%81%E9%AB%98%E6%80%A7%E8%83%BD%E3%80%81%E7%AE%80%E5%8D%95%E4%B8%94%E5%BC%80%E6%BA%90%E7%9A%84%E5%90%8D%E7%A7%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E3%80%82
DNS记录和反向PTR
正确的DNS设置是必需的,此步骤非常重要。
| 主机名 | 类别 | 类型 | 优先级 | 值 |
|---|---|---|---|---|
| IN | A/AAAA | 任意 | 1.2.3.4 | |
| spam | IN | CNAME | 任意 | mail.domain.tld. |
| webmail | IN | CNAME | 任意 | mail.domain.tld. |
| postfixadmin | IN | CNAME | 任意 | mail.domain.tld. |
| @ | IN | MX | 10 | mail.domain.tld. |
| @ | IN | TXT | 任意 | "v=spf1 a mx ip4:SERVER_IPV4 ~all" |
| {{selector}}._domainkey | IN | TXT | 任意 | "v=DKIM1; k=rsa; p=您的DKIM公钥" |
| _dmarc | IN | TXT | 任意 | "v=DMARC1; p=reject; rua=mailto:; ruf=mailto:; fo=0; adkim=s; aspf=s; pct=100; rf=afrf; sp=reject" |
注意:
mail,除非通过DKIM_SELECTOR更改/mnt/docker/mail/dkim/domain.tld/{{selector}}.public.key
要重新生成公钥和私钥,请删除/mnt/docker/mail/dkim/domain.tld文件夹。默认生成1024位密钥,您可以通过设置DKIM_KEY_LENGTH环境变量为更高值来增加密钥大小。请检查您的域名注册商是否支持足够长的TXT记录以容纳大于1024位的密钥。
这些DNS记录将提高您的信任信誉评分并减少域名滥用。您可以在此处找到更多信息:
测试工具
您可以使用以下评估服务审核您的邮件服务器:
返回目录 :arrow_up_small:
1 - 准备环境
:bulb: 本设置中使用的反向代理是Traefik,但您可以使用自己选择的解决方案(Nginx、Apache、Haproxy、Caddy、H2O等)。
:warning: 此Docker镜像可能无法在某些使用安全增强内核补丁(如GrSecurity)的强化Linux发行版上工作,请使用支持的平台。
bash# 创建Traefik的新Docker网络(仅IPv4) docker network create http_network # 如果要支持IPv6,请参考[IPv6支持] # 创建所需的文件夹和文件 mkdir -p /mnt/docker/traefik/acme && cd /mnt/docker \ && curl https://raw.githubusercontent.com/mailserver2/mailserver/master/docker-compose.sample.yml -o docker-compose.yml \ && curl https://raw.githubusercontent.com/mailserver2/mailserver/master/sample.env -o .env \ && curl https://raw.githubusercontent.com/mailserver2/mailserver/master/traefik.sample.toml -o traefik/traefik.toml \ && curl https://raw.githubusercontent.com/mailserver2/mailserver/master/file.sample.toml -o traefik/file.toml \ && touch traefik/acme/acme.json \ && chmod 600 docker-compose.yml .env traefik/traefik.toml traefik/file.toml traefik/acme/acme.json
编辑.env和traefik.toml,根据您的需求调整,然后启动所有服务:
docker-compose up -d
2 - Postfixadmin安装
PostfixAdmin是一个基于Web的界面,用于管理***、虚拟域和别名。
3 - Rainloop安装(可选)
Rainloop是一个简单、现代且快速的Web邮件前端,支持Sieve脚本(过滤器和假期消息)、GPG和现代用户界面。
4 - 完成安装
首次启动时,容器需要几分钟时间生成SSL证书(如果需要)、DKIM密钥对生成和更新Clamav数据库,所有这些都需要一些时间(1/2分钟)。此镜像附带一个自签名的临时证书,请使用您自己的可信证书。https://github.com/mailserver2/mailserver#ssl-certificates%E4%BA%86%E8%A7%A3%E9%85%8D%E7%BD%AE%E3%80%82
可用的Web服务列表:
| 服务 | URI |
|---|---|
| Traefik仪表板 | [***] |
| Rspamd仪表板 | [***] |
| 管理界面 | [***] |
| Webmail | [***] |
Traefik仪表板使用基本身份验证(用户:admin,密码:***),密码可以用MD5、SHA1和BCrypt编码。您可以使用htpasswd生成这些密码。用户可以直接在traefik.toml文件中指定。Rspamd仪表板使用docker-compose.yml中定义的密码。
您可以使用以下命令检查启动日志:
# docker logs -f mailserver [INFO] Let's encrypt live directory found [INFO] Using /etc/letsencrypt/live/mail.domain.tld folder [INFO] Creating DKIM keys for domain domain.tld [INFO] Database hostname found in /etc/hosts [INFO] Fetchmail forwarding is enabled. [INFO] Automatic GPG encryption is enabled. [INFO] ManageSieve protocol is enabled. [INFO] POP3 protocol is enabled. ------------------------------------------------------------------------------------- 2017-08-26T11:06:58.885562+00:00 mail root: s6-supervise : spawning clamd process 2017-08-26T11:06:59.059077+00:00 mail root: s6-supervise : spawning freshclam process 2017-08-26T11:06:59.395214+00:00 mail root: s6-supervise : spawning rspamd process 2017-08-26T11:07:01.615597+00:00 mail root: s6-supervise : spawning unbound
以下是 oursource/mailserver 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




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