使用docker搭建邮件中继服务器
docker-postfix是基于Debian的Postfix邮件中继Docker镜像,用于在Docker环境中集中管理外发电子邮件。 支持直接发送和通过中继服务器转发,针对应用程序邮件队列优化,提供灵活配置、DKIM签名,跨平台兼容多种架构。 适合需要可靠SMTP发送功能的应用和服务使用。
快速开始
docker-compose.yaml
version: '3'
services:
postfix:
image: boky/postfix
ports:
- 1587:587
environment:
- RELAYHOST=192.168.0.1 # 转发服务器
- ALLOWED_SENDER_DOMAINS=test.com # 允许通过此服务器发送电子邮件的域
- POSTFIX_smtpd_recipient_restrictions=permit_mynetworks,reject # 收件人限制(信任本地网络)
- POSTFIX_smtpd_sender_restrictions=permit_sasl_authenticated,reject # 发件人限制(SASL身份认证)
- [email protected]:test # 启用SASL身份认证
restart: unless-stopped
配置选项
常规选项
TZ
= 镜像的时区设置(例如:Europe/Amsterdam)
FORCE_COLOR
= 设为1可强制启用彩色输出(否则自动检测)
INBOUND_DEBUGGING
= 设为1可启用日志中的详细调试信息
ALLOWED_SENDER_DOMAINS
= 允许通过本服务器发送邮件的域名列表
ALLOW_EMPTY_SENDER_DOMAINS
= 若启用此值(如设为true),则ALLOWED_SENDER_DOMAINS可不设置
LOG_FORMAT
= 设置日志格式(支持JSON或纯文本格式)
Postfix专用选项
RELAYHOST
= 邮件中继主机地址
SASL_RELAYHOST
= (sasl_passwd文件中引用的中继主机,默认与RELAYHOST相同)
RELAYHOST_USERNAME
= (可选)中继服务器认证用户名
RELAYHOST_PASSWORD
= (可选)中继服务器登录密码
RELAYHOST_PASSWORD_FILE
= (可选)存储中继密码的文件(与前一个选项互斥)
POSTFIX_smtp_tls_security_level
= 中继主机TLS连接安全级别(如:encrypt/verify/may等)
XOAUTH2_CLIENT_ID
= (配置为中继主机时使用的OAuth2客户端ID)
XOAUTH2_SECRET
= (配置为中继主机时使用的OAuth2密钥)
XOAUTH2_INITIAL_ACCESS_TOKEN
= 初始OAuth2访问令牌
XOAUTH2_INITIAL_REFRESH_TOKEN
= 初始OAuth2刷新令牌
XOAUTH2_TOKEN_ENDPOINT
= 令牌端点(Gmail示例:https://accounts.google.com/o/oauth2/token)
SMTPD_SASL_USERS
= 允许发送邮件的用户(例如:user1:pass1,user2:pass2,…)。注意:用户需指定域名,详见问题单#192。本镜像将在未提供域名时自动添加,并发出通知。
MASQUERADED_DOMAINS
= 需要伪装内部主机的域名列表
SMTP_HEADER_CHECKS
= 设为1启用邮件头检查(需指定检查规则文件路径)
POSTFIX_myhostname
= 设置此Postfix服务器的主机名
POSTFIX_mynetworks
= 允许发送邮件的受信网络(默认:127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16)
POSTFIX_message_size_limit
= 邮件最大尺寸(字节,默认无限制)
POSTFIX_<任意参数>
= 可设置任意Postfix配置参数(例如:POSTFIX_smtpd_recipient_limits=500)