
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
postfix-relay是一个Postfix SMTP中继Docker镜像,主要用于在不依赖外部SMTP服务器的情况下发送邮件。默认配置为开放中继,依赖Docker网络环境提供保护,因此需注意不要将其暴露到公网环境。
POSTFIX_<name>环境变量设置Postfix配置选项,支持自定义myhostname等关键参数POSTFIXMASTER_变量修改master.cf,双下划线__会自动替换为/POSTMAP_<filename>环境变量创建多行Postfix查找表OPENDKIM_<name>环境变量配置DKIM,自动生成RSA密钥对bashdocker pull mwader/postfix-relay
也可自行克隆源码构建镜像。
通过POSTFIX_<name>环境变量设置Postfix配置选项,例如:
POSTFIX_myhostname:设置FQDN(用于220/HELO响应),对应Postfix的myhostname参数使用POSTFIXMASTER_环境变量修改master.cf,双下划线__会替换为/。示例:
POSTFIXMASTER_submission__inet=submission inet n - y - - smtpd
会生成:
bashpostconf -Me submission/inet="submission inet n - y - - smtpd"
通过POSTMAP_<filename>环境变量创建多行查找表,格式如下:
yamlenvironment: - POSTFIX_transport_maps=hash:/etc/postfix/transport - | POSTMAP_transport=gmail.com smtp mydomain.com relay:[relay1.mydomain.com]:587 * relay:[relay2.mydomain.com]:587
这会生成文件/etc/postfix/transport并执行postmap /etc/postfix/transport。
通过OPENDKIM_<name>环境变量配置OpenDKIM,例如:
OPENDKIM_Canonicalization=relaxed/simple
默认配置可参考Dockerfile。
bashdocker run -e POSTFIX_myhostname=smtp.domain.tld mwader/postfix-relay
yamlversion: '3' services: app: # 使用"smtp"作为SMTP服务器主机名 smtp: image: mwader/postfix-relay restart: always environment: - POSTFIX_myhostname=smtp.domain.tld - OPENDKIM_DOMAINS=smtp.domain.tld
默认仅日志输出到stdout,可通过以下环境变量配置日志:
RSYSLOG_LOG_TO_FILE=yes:将mail.*日志写入文件(需挂载卷到/var/log/)RSYSLOG_TIMESTAMP=yes:日志添加时间戳yamlenvironment: - RSYSLOG_REMOTE_HOST=my.remote-syslog-server.com - RSYSLOG_REMOTE_PORT=514 - RSYSLOG_REMOTE_TEMPLATE=RSYSLOG_ForwardFormat
通过TZ环境变量设置时区,解决日志时间戳问题:
yamlenvironment: - TZ=Europe/Prague
OpenDKIM权限错误
部分Docker发行版(如Docker for Windows、RancherOS)的卷权限可能导致OpenDKIM密钥权限错误,解决方法:
yamlenvironment: - OPENDKIM_RequireSafeKeys=no
使用自建SMTP服务器发送邮件时,建议为发送域名配置SPF记录,提高邮件送达率。
通过OPENDKIM_DOMAINS环境变量指定域名(空格分隔),格式为<domain>或<domain>=<selector>(默认选择器为"mail")。
容器启动时会为每个域名生成RSA密钥对,除非/etc/opendkim/keys/<domain>/<selector>.private已存在。为持久化密钥,需挂载卷:
yamlvolumes: - ./opendkim-keys:/etc/opendkim/keys
DKIM DNS记录可通过容器日志查看,或执行以下命令获取:
bashdocker exec <container> sh -c 'cat /etc/opendkim/keys/*/*.txt'
示例输出:
mail._domainkey.smtp.domain.tld. IN TXT ( "v=DKIM1; h=sha256; k=rsa; " "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0Dx7wLGPFVaxVQ4TGym/eF89aQ8oMxS9v5BCc26Hij91t2Ci8Fl12DHNVqZoIPGm+9tTIoDVDFEFrlPhMOZl8i4jU9pcFjjaIISaV2+qTa8uV1j3MyByogG8pu4o5Ill7zaySYFsYB++cHJ9pjbFSC42dddCYMfuVgrBsLNrvEi3dLDMjJF5l92Uu8YeswFe26PuHX3Avr261n" "j5joTnYwat4387VEUyGUnZ0aZxCERi+ndXv2/wMJ0tizq+a9+EgqIb+7lkUc2XciQPNuTujM25GhrQBEKznvHyPA6fHsFheymOuB763QpkmnQQLCxyLygAY9mE/5RY+5Q6J9oDOQIDAQAB" ) ; ----- DKIM key mail for smtp.domain.tld
postfix-relay采用MIT许可证,详见LICENSE。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。





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