本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

postfix-relay是一个Postfix SMTP中继Docker镜像,主要用于在不依赖外部SMTP服务器的情况下发送邮件。默认配置为开放中继,依赖Docker网络环境提供保护,因此需注意不要将其暴露到公网环境。
POSTFIX_<name>环境变量设置Postfix配置选项,支持自定义myhostname等关键参数POSTFIXMASTER_变量修改master.cf,双下划线__会自动替换为/POSTMAP_<filename>环境变量创建多行Postfix查找表OPENDKIM_<name>环境变量配置DKIM,自动生成RSA密钥对docker 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
会生成:
postconf -Me submission/inet="submission inet n - y - - smtpd"
通过POSTMAP_<filename>环境变量创建多行查找表,格式如下:
environment: - 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。
docker run -e POSTFIX_myhostname=smtp.domain.tld mwader/postfix-relay
version: '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:日志添加时间戳environment: - RSYSLOG_REMOTE_HOST=my.remote-syslog-server.com - RSYSLOG_REMOTE_PORT=514 - RSYSLOG_REMOTE_TEMPLATE=RSYSLOG_ForwardFormat
通过TZ环境变量设置时区,解决日志时间戳问题:
environment: - TZ=Europe/Prague
部分Docker发行版(如Docker for Windows、RancherOS)的卷权限可能导致OpenDKIM密钥权限错误,解决方法:
environment: - OPENDKIM_RequireSafeKeys=no
使用自建SMTP服务器发送邮件时,建议为发送域名配置SPF记录,提高邮件送达率。
通过OPENDKIM_DOMAINS环境变量指定域名(空格分隔),格式为<domain>或<domain>=<selector>(默认选择器为"mail")。
容器启动时会为每个域名生成RSA密钥对,除非/etc/opendkim/keys/<domain>/<selector>.private已存在。为持久化密钥,需挂载卷:
volumes: - ./opendkim-keys:/etc/opendkim/keys
DKIM DNS记录可通过容器日志查看,或执行以下命令获取:
docker 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。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429