
tozd/postfixtozd/postfix 是一个提供 Postfix 邮件传输代理的Docker镜像。该镜像基于 tozd/dinit 构建,支持多种操作系统版本(Ubuntu和Alpine Linux)及硬件架构,主要用于发送出站电子邮件。通过持久化存储和环境变量配置,可灵活适应不同场景,并支持扩展为完整的邮件服务或作为其他容器的邮件中继节点。
amd64和arm64架构myhostname、mynetworks)tozd/mail示例)sendmail命令支持(推荐配合tozd/mailer使用)tozd/mailer或tozd/nginx-mailer)可通过以下仓库获取:
tozd/postfixregistry.gitlab.com/tozd/docker/postfixubuntu-trusty: Postfix 2.11.0ubuntu-xenial: Postfix 3.1.0ubuntu-bionic: Postfix 3.3.0ubuntu-focal: Postfix 3.4.13ubuntu-jammy: Postfix 3.6.4ubuntu-noble: Postfix 3.8.6alpine-38: Postfix 3.3.0alpine-310: Postfix 3.4.7alpine-312: Postfix 3.5.16alpine-314: Postfix 3.6.4alpine-316: Postfix 3.7.6alpine-318: Postfix 3.8.9alpine-320: Postfix 3.9.3alpine-322: Postfix 3.10.2amd64arm64| 卷路径 | 用途说明 |
|---|---|
/var/log/postfix | 日志存储目录(当LOG_TO_STDOUT未设为1时)。Postfix 3.4之前版本不支持日志轮转 |
/var/spool/postfix | 邮件队列及状态存储目录,必须持久化挂载以避免数据丢失 |
| 变量名 | 说明 | 默认值 |
|---|---|---|
MAILNAME | 设置/etc/mailname及Postfix的myhostname配置项 | - |
MY_NETWORKS | 设置Postfix的mynetworks配置项(信任网络) | 172.17.0.0/16 127.0.0.0/8 |
MY_DESTINATION | 设置Postfix的mydestination配置项(本地投递目标) | localhost.localdomain, localhost |
ROOT_ALIAS | 容器内root用户邮件的转发目标***(非扩展场景通常无需设置) | - |
LOG_TO_STDOUT | 设为1时日志输出到stdout(通过docker logs查看),仅Postfix 3.4+支持 | - |
| 端口 | 用途 |
|---|---|
25/tcp | SMTP服务端口 |
465/tcp | SMTPS(SSL)端口 |
587/tcp | 邮件提交端口(MSA) |
docker run快速启动bashdocker run -d \ --name postfix \ -p 25:25 \ -e MAILNAME="mail.example.com" \ -e MY_NETWORKS="172.17.0.0/16 192.168.1.0/24" \ -v postfix-spool:/var/spool/postfix \ tozd/postfix:ubuntu-jammy
docker-compose配置yamlversion: '3.8' services: postfix: image: tozd/postfix:ubuntu-jammy container_name: postfix restart: always ports: - "25:25" - "587:587" environment: - MAILNAME=mail.example.com - MY_NETWORKS=172.17.0.0/16 192.168.1.0/24 - LOG_TO_STDOUT=1 volumes: - postfix-spool:/var/spool/postfix # 若不使用LOG_TO_STDOUT,挂载日志卷 # - postfix-logs:/var/log/postfix networks: - mail-network volumes: postfix-spool: driver: local # postfix-logs: # driver: local networks: mail-network: driver: bridge
扩展镜像时,可添加以下脚本实现自定义配置:
/etc/service/postfix/run.config:启动初期执行,用于准备自定义配置/etc/service/postfix/run.initialization:初始化后、Postfix启动前执行hash/btree查找表(Alpine 3.13+移除Berkeley DB支持)lmdb类型数据库,例如:
virtual_alias_maps = lmdb:/etc/postfix/virtual
MAILNAME解析的IP一致,以提升邮件送达率(可配合tozd/external-ip镜像获取外部IP)/var/spool/postfix卷,避免容器重建导致邮件队列丢失LOG_TO_STDOUT=1,便于容器日志收集;旧版本需手动配置日志轮转MY_NETWORKS,限制信任来源


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务