
最简单、最小巧的Docker邮件转发服务。
如果你拥有域名,只需要在该域名上设置一个(或几个)电子邮件地址,并希望将所有邮件转发到另一个电子邮件账户,那么Simple Mail Forwarder (SMF) 正是你所需要的(基于Docker)。
由于上述需求,这个Docker镜像被构建为极致简洁的解决方案。适用于需要为多个域名配置简单邮件转发,但又不想复杂配置邮件服务器的场景。
@Brian Christner : 在测试了大量不同的邮件项目后,我终于发现了Huan开发的Simple Mail Forwarder (SMF)。这个镜像基于Alpine,这已经是一个优点。它非常小巧,正如其名,易于使用。
@kiani: 成功搭建了邮件服务器,真的就这么简单。
@counterbeing: 很棒的镜像。界面非常简单,包含了我需要的所有功能。
只需设置SMF_CONFIG并运行:
bashexport SMF_CONFIG='testi@testo.com:test@test.com:test' docker run -e SMF_CONFIG -p 25:25 zixia/simple-mail-forwarder
不要忘记修改域名的DNS MX记录(在这个例子中是testo.com)
这将把发送到的所有邮件转发到。
如果你想将发送到testo.com域的所有邮件转发到***,可以这样设置:
bashexport SMF_CONFIG='@testo.com:all@test.com'
如果你想在后台持续运行,添加
-t -d --restart=always参数:bashdocker run -t -d --restart=always -e SMF_CONFIG -p 25:25 zixia/simple-mail-forwarder
-t: 分配伪终端-d: 后台模式--restart=always: 自动重启容器
SMF_CONFIG: 必须定义,无默认值。(这是唯一需要设置的参数)TZ: (可选)设置时区,例如EST5EDT或Europe/RomeSMF_CONFIG示例1. 基本用法
将发送到的所有邮件转发到:
bashexport SMF_CONFIG='testi@testo.com:test@test.com'
将发送到testo.com域中任何电子邮件地址的邮件转发到***:
bashexport SMF_CONFIG='@testo.com:all@test.com'
2. 高级用法
添加ESMTP AUTH密码:
bashexport SMF_CONFIG='from@testi.com:to@testo.com:ThisIsPassword'
3. 多账户配置
添加多个电子邮件账户,带或不带密码,用分号分隔:
bashexport SMF_CONFIG='testi@testo.com:test@test.com:ThisIsPassword;testo@testi.com:test@test.com:AnotherPassword'
你也可以将发送到***的邮件转发到多个目标地址:
bashexport SMF_CONFIG='testi@testo.com:test1@test.com|test2@test.com|test3@test.com'
SMF_RELAYHOST示例配置中继主机/智能主机用于转发邮件:
bashexport SMF_RELAYHOST='192.168.1.2'
SMF_RELAYAUTH示例如果SMF_RELAYHOST需要身份验证:
bashexport SMF_RELAYAUTH='username@relayhost.com:RelayHostPassword'
SMF启动时会创建自己的证书和私钥。此证书是自签名的,因此某些系统可能会发出服务器不受信任的警告。
如果你拥有主机域名的有效证书,可以使用它们来避免不受信任的警告:
smtp.cert的文件中,将私钥复制到名为smtp.key的文件中/data/certs/-v参数将其挂载到/etc/postfix/cert/文件夹:bashdocker run -e SMF_CONFIG -p 25:25 -v /data/certs/:/etc/postfix/cert/ zixia/simple-mail-forwarder
SMF将为$SMF_DOMAIN和SMF_CONFIG中包含的所有源域生成私钥/公钥对。所有密钥将存储在/var/db/dkim/<domain.tld>/中。
强烈建议将/var/db/dkim/文件夹挂载到主机,以免生成的密钥对丢失或重新生成:
bashdocker run -e SMF_CONFIG -p 25:25 -v $(pwd)/dkim:/var/db/dkim/ zixia/simple-mail-forwarder
当定义了SMF_SENDERPRIVACY环境变量时,SMF将剥离发件人的IP、客户端和用户代理头。
SMF允许使用环境变量添加或更改Postfix的main.cf和master.cf配置文件中的行:
SMF_POSTFIXMAIN_*变量将编辑Postfix的main.cf条目。
SMF_POSTFIXMAIN_选项名=值SMF_POSTFIXMAIN_soft_bounce=yes将添加soft_bounce=yes选项。SMF_POSTFIXMASTER_*变量将编辑Postfix的master.cf。
SMF_POSTFIXMASTER_服务__类型__参数名=值SMF_POSTFIXMASTER_submission__inet__smtpd__recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject使用BATS(Bash Automated Testing System)进行测试:
bashdocker run zixia/simple-mail-forwarder test
bashdocker run -d --name smf \n -e SMF_CONFIG='info@example.com:yourname@gmail.com' \n -p 25:25 \n --restart=always \n zixia/simple-mail-forwarder
bashdocker run -d --name smf \n -e SMF_CONFIG='@example.com:yourname@gmail.com' \n -e TZ='Asia/Shanghai' \n -p 25:25 \n -v /path/to/certs:/etc/postfix/cert \n -v /path/to/dkim:/var/db/dkim \n --restart=always \n zixia/simple-mail-forwarder
yamlversion: '3' services: smf: image: zixia/simple-mail-forwarder container_name: smf restart: always environment: - SMF_CONFIG=@example.com:yourname@gmail.com - TZ=Asia/Shanghai ports: - "25:25" volumes: - ./certs:/etc/postfix/cert - ./dkim:/var/db/dkim
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务