
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
由MarvAmBass维护
FAQ - 关于marvambass容器的所有须知
marvambass/versatile-postfix 是一个功能全面的Postfix邮件服务器Docker镜像。默认情况下,它会使用DKIM签名外发邮件。您可以为单个域名创建多个带密码的用户;若需支持多域名,需使用多个容器或自行 fork 该项目。
注意:这不是POP3或IMAP服务器,接收的邮件将以 Maildir 格式存储,可通过less查看或链接IMAP服务器至存储卷访问。
ALIASES
可选,无默认值。示例用法:postmaster:root;john:root;j.doe:root(设置邮件别名)。
DISABLE_DKIM
默认未设置。若设置为任意值,将禁用DKIM签名功能。
DKIM_CANONICALIZATION
默认值:simple。可选值:relaxed 或 simple(DKIM规范化方式)。
DKIM_SELECTOR
默认值:mail。可自定义DKIM选择器名称。
以下变量用于覆盖配置生成后的设置,仅在需要特定配置时使用。建议优先使用上述基础变量,部分字符可能导致配置错误!
POSTFIX_RAW_CONFIG_<POSTFIX_SETTING_NAME>/etc/postfix/main.cf 中的配置,格式为 POSTFIX_RAW_CONFIG_ 后接配置项名称。mynetworks_style = subnet,需添加环境变量 POSTFIX_RAW_CONFIG_MYNETWORKS_STYLE=subnet。该镜像设计为高度灵活,启动脚本会处理关键配置。需注意:这仅是SMTP服务器,为避免容器删除后邮件丢失,需挂载存储卷存储邮件。
基本启动命令
bash$ docker run -p 25:25 -v /maildirs:/var/mail \ -v /dkim:/etc/postfix/dkim/ \ -e 'ALIASES=postmaster:root;hostmaster:root;webmaster:root' \ marvambass/versatile-postfix \ yourdomain.com \ user:password \ user1:password \ user2:password \ userN:password
参数说明:
-p 25:25:映射SMTP端口(25)。-v /maildirs:/var/mail:挂载本地目录存储Maildir格式邮件。-v /dkim:/etc/postfix/dkim/:挂载DKIM密钥目录(需包含 dkim.key 文件)。-e 'ALIASES=...':设置邮件别名。yourdomain.com 为域名,后续 user:password 对为创建的用户账号(邮件地址格式:user@yourdomain.com)。服务器默认启用DKIM签名。首次启动时,若 /etc/postfix/dkim/ 目录中无 dkim.key,将自动生成DKIM密钥。需确保挂载该目录并将公钥配置到DNS系统。
安装opendkim工具:
bash$ apt-get install opendkim-tools
生成密钥(以域 example.com、选择器 mail 为例;添加 -t 参数可启用测试模式):
bash$ opendkim-genkey -s mail -d example.com
部署密钥:
mail.private 重命名为 dkim.key,放入挂载的 /dkim 目录。mail.txt 中的公钥配置到DNS(添加TXT记录)。mail.txt 内容示例:
mail._domainkey IN TXT ( "v=DKIM1; k=rsa; " "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcUp8Q1sbxgnR2iL7w+TOHN1IR6PzAP3vmUoPfeN07NGfWo8Wzxyn+hqqnC+mbPOW4ZDoAiu5dvpPsCt1RQalwBw/iPlB/8ScTlPGRpsTLo4ruCDL+yVkw32/UhvCL8vbZxM/Q7ELjO6AqRRW/KuCvbd5gNRYGeyjWd+UQAfmBJQIDAQAB" ) ; ----- DKIM key mail for example.com
需在域名DNS配置中添加TXT记录:
mail._domainkey IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcUp8Q1sbxgnR2iL7w+TOHN1IR6PzAP3vmUoPfeN07NGfWo8Wzxyn+hqqnC+mbPOW4ZDoAiu5dvpPsCt1RQalwBw/iPlB/8ScTlPGRpsTLo4ruCDL+yVkw32/UhvCL8vbZxM/Q7ELjO6AqRRW/KuCvbd5gNRYGeyjWd+UQAfmBJQIDAQAB"
bash$ host -t TXT mail._domainkey.example.com
bash$ mailx -r "sender@example.com" -s "测试邮件主题" user1@yourdomain.com < /etc/hosts
生成Base64编码的认证信息(格式:\0用户名\0密码):
bash$ echo -ne '\0user\0password' | openssl enc -base64 AHVzZXIAcGFzc3dvcmQ= # 示例输出
通过telnet连接并发送邮件:
bash$ telnet 127.0.0.1 25 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. 220 yourdomain.com ESMTP ehlo test 250-yourdomain.com 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH LOGIN PLAIN 250 8BITMIME auth plain AHVzZXIAcGFzc3dvcmQ= # 替换为步骤1生成的编码 235 Authentication successful mail from: user@yourdomain.com 250 2.1.0 Ok rcpt to: mail@example.com 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> 测试邮件内容 这是一封测试邮件 . 250 2.0.0 Ok: queued as 2E7FB27F quit 221 Bye Connection closed by foreign host.
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务