设置了邮件自动转发到外部邮箱,转发的邮件 SPF 验证失败被退信,怎么彻底解决?
80
设置了邮件自动转发到外部邮箱,转发的邮件 SPF 验证失败被退信,怎么彻底解决?
▼
为什么会失败
邮件从 alice@example.com → 你的服务器 → 转发到 Gmail。
Gmail 收到后检查 SPF:发信 IP 是你的服务器,但 example.com 的 SPF 记录里不一定有你的 IP → SPF fail。
解决方案:SRS(Sender Rewriting Scheme)
SRS 把原始 Return-Path(信封发件人)重写为转发服务器自己的地址,格式:SRS0=HHH=TT=example.com=alice@yourdomain.com
这样 Gmail 检查的是 yourdomain.com 的 SPF → 通过。
回弹时 SRS 会自动还原原始发件人,退信正确路由回去。
实现方式
Postfix:安装 postsrsd(github.com/roehling/postsrsd),apt install postsrsd → 配置 main.cf。
Sendmail:使用 srs-milter。
商业服务:多数企业邮箱和邮件转发平台内置 SRS。
确认生效:检查转发邮件的 Return-Path 头是否变成了 SRS0- 前缀。
参考:RFC 7208 SPF §2.2 Forwarding Problem · postsrsd 文档 · Oracle Messaging Server SRS 指南
