SPF 记录中的 ~all(软失败)和 -all(硬失败)有什么区别?
SPF 记录的 ~all(softfail)和 -all(fail)是 RFC 7208 §4.7 定义的两种结束机制,决定未经授权 IP 发送邮件的处理方式:
| SPF 限定符 | 含义 | 收件方行为 | 适用场景 |
|---|---|---|---|
~all | Softfail(软失败) | 接收邮件,标记为疑似垃圾 | 测试/过渡期,尚不确定发信 IP 完整性 |
-all | Fail(硬失败) | RFC 5321 §3.7 允许拒收 | 发信 IP 清单已确认完整,可安全拒收 |
关键区别
- DMARC 对齐影响:
-all促使收件方严格对齐 SPF;~all的 softfail 按fail处理(RFC 7489 §6.3 规定),但对下游反垃圾评分影响不同。 - 邮件送达率:Gmail 等大型邮箱对
~all降低评分但不拒收(提升误报容忍度);-all配合 DMARC p=reject 可直接拒收未经授权的邮件。 - 迁移建议:先部署
~all(监控 RUA 报表至少 7 天),确认所有合法发信 IP 已覆盖后,再改为-all。
正确示例:v=spf1 mx include:_spf.example.com -all
参考文献
- RFC 7208 §4.7
