
请注意,尽管提交记录较早,但本项目仍在维护中,已达到功能完善状态。最新代码可在Dockerhub(https://hub.docker.com/r/boky/postfix%EF%BC%89%E8%8E%B7%E5%8F%96%E3%80%82%E5%A6%82%E6%9C%89%E5%BB%BA%E8%AE%AE%EF%BC%8C%E6%AC%A2%E8%BF%8E%E5%85%8B%E9%9A%86%E5%B9%B6%E6%8F%90%E4%BA%A4%E5%90%88%E5%B9%B6%E8%AF%B7%E6%B1%82%E3%80%82
本镜像允许在Docker云/swarm环境中运行Postfix,以集中处理容器的外发邮件。内置的Postfix支持两种模式:直接发送邮件或中继至公司主邮件服务器。
这是一个服务器端Postfix镜像,专为应用程序外发邮件设计,不支持用户名/密码登录等客户端安全功能。若需为终端用户设置和管理Postfix,本镜像不适用;若需管理应用程序的外发邮件队列,可继续阅读。
适用于Docker环境中需要集中管理应用程序外发邮件的场景,例如:
运行容器的基本命令:
bashdocker run --rm --name postfix -p 1587:587 boky/postfix
此时可使用localhost:1587作为SMTP服务器地址发送邮件。注意:镜像默认使用提交端口(587),未暴露25端口(通常被ISP封锁或已被其他服务占用)。
配置SMTP服务器的常规注意事项同样适用,例如需确保DNS记录正确配置以避免邮件被标记为垃圾邮件。
支持以下环境变量配置:
| 环境变量 | 说明 |
|---|---|
HOSTNAME | Postfix的myhostname(服务器标识名) |
RELAYHOST | 中继邮件的目标服务器 |
RELAYHOST_USERNAME | 中继服务器的可选用户名 |
RELAYHOST_PASSWORD | 中继服务器的可选登录密码 |
MYNETWORKS | 允许访问的网络(默认:127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16) |
ALLOWED_SENDER_DOMAINS | 允许的发件人域名 |
HOSTNAME
配置SMTP服务器标识的主机名。若未设置,将使用默认Docker主机名(通常为容器ID,如f73792d540a5),可能导致日志追踪困难。建议显式设置:
bashdocker run --rm --name postfix -e HOSTNAME=postfix-docker -p 1587:587 boky/postfix
RELAYHOST、RELAYHOST_USERNAME 和 RELAYHOST_PASSWORD
Postfix默认直接向目标服务器投递邮件。若处于防火墙后或企业环境中,可设置中继服务器转发邮件。
基本中继配置:
bashdocker run --rm --name postfix -e RELAYHOST=192.168.115.215 -p 1587:587 boky/postfix
指定中继端口:
bashdocker run --rm --name postfix -e RELAYHOST=192.168.115.215:587 -p 1587:587 boky/postfix
IPv6中继地址:
bashdocker run --rm --name postfix -e 'RELAYHOST=[2001:db8::1]:587' -p 1587:587 boky/postfix
带认证的中继:
bashdocker run --rm --name postfix -e RELAYHOST=mail.google.com -e RELAYHOST_USERNAME=hello@gmail.com -e RELAYHOST_PASSWORD=world -p 1587:587 boky/postfix
MYNETWORKS
默认仅允许私有IPv4网络访问,以防止意外暴露至公网导致垃圾邮件发送。如需支持IPv6或限制更严格的访问,可覆盖此设置:
bashdocker run --rm --name postfix -e "MYNETWORKS=10.1.2.0/24" -p 1587:587 boky/postfix
ALLOWED_SENDER_DOMAINS
若应用仅从特定域名发送邮件,建议限制允许的发件人域名以增强安全性:
bashdocker run --rm --name postfix -e "ALLOWED_SENDER_DOMAINS=example.com example.org" -p 1587:587 boky/postfix
如需添加自定义Postfix配置或扩展功能,可将脚本添加至/docker-init.db/目录,所有.sh扩展名的文件将在启动脚本末尾自动执行。
示例自定义Dockerfile:
dockerfileFROM boky/postfix MAINTAINER Some Randombloke "randombloke@example.com" ADD Dockerfiles/additional-config.sh /docker-init.db/
构建后,自定义脚本将在Postfix启动前自动执行。
Postfix主进程以root用户运行(符合其设计),子进程以postfix用户(UID:GID 100:101)运行。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务