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)