最简单、最小巧的Docker邮件转发服务。
如果你拥有域名,只需要在该域名上设置一个(或几个)电子邮件地址,并希望将所有邮件转发到另一个电子邮件账户,那么Simple Mail Forwarder (SMF) 正是你所需要的(基于Docker)。
由于上述需求,这个Docker镜像被构建为极致简洁的解决方案。适用于需要为多个域名配置简单邮件转发,但又不想复杂配置邮件服务器的场景。
@Brian Christner : 在测试了大量不同的邮件项目后,我终于发现了Huan开发的Simple Mail Forwarder (SMF)。这个镜像基于Alpine,这已经是一个优点。它非常小巧,正如其名,易于使用。
@kiani: 成功搭建了邮件服务器,真的就这么简单。
@counterbeing: 很棒的镜像。界面非常简单,包含了我需要的所有功能。
只需设置SMF_CONFIG并运行:
bashexport SMF_CONFIG='***:***:test' docker run -e SMF_CONFIG -p 25:25 zixia/simple-mail-forwarder
不要忘记修改域名的DNS MX记录(在这个例子中是testo.com)
这将把发送到的所有邮件转发到。
如果你想将发送到testo.com域的所有邮件转发到***,可以这样设置:
bashexport SMF_CONFIG='@testo.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示例将发送到的所有邮件转发到:
bashexport SMF_CONFIG='***:***'
将发送到testo.com域中任何电子邮件地址的邮件转发到***:
bashexport SMF_CONFIG='@testo.com:***'
添加ESMTP AUTH密码:
bashexport SMF_CONFIG='***:***:ThisIsPassword'
添加多个电子邮件账户,带或不带密码,用分号分隔:
bashexport SMF_CONFIG='***:***:ThisIsPassword;***:***:AnotherPassword'
你也可以将发送到***的邮件转发到多个目标地址:
bashexport SMF_CONFIG='***:*********'
SMF_RELAYHOST示例配置中继主机/智能主机用于转发邮件:
bashexport SMF_RELAYHOST='192.168.1.2'
SMF_RELAYAUTH示例如果SMF_RELAYHOST需要身份验证:
bashexport SMF_RELAYAUTH='***: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='***:***' \n -p 25:25 \n --restart=always \n zixia/simple-mail-forwarder
bashdocker run -d --name smf \n -e SMF_CONFIG='@example.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:*** - TZ=Asia/Shanghai ports: - "25:25" volumes: - ./certs:/etc/postfix/cert - ./dkim:/var/db/dkim
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429