Skip to main content

8. Result Handling (结果处理)

8. Result Handling (结果处理)

本节讨论 SPF 实现应该如何处理各种可能的 check_host() 结果。它仅是建议性的, 因为本地站点策略可能会决定对特定结果采取不同的操作。

8.1 None

返回 "none" 意味着没有找到与查询域匹配的适用发件人策略。应该将该结果视为等同于 SPF 的"不存在"; 即, 没有策略可以评估。

接收方 MTA 不应该根据此结果拒绝邮件。虽然 SPF 检查失败可能导致拒绝, 但 "none" 结果不应该成为拒绝的基础, 因为它没有提供任何关于发件人授权的信息。

8.2 Neutral

返回 "neutral" 意味着域的所有者明确表示他不断言发送主机是否已被授权。该结果应该被视为等同于 "none" 结果; SPF 验证既不能确认也不能否认主机的授权。

接收方 MTA 不应该根据此结果拒绝邮件。

8.3 Pass

返回 "pass" 意味着客户端已通过发件人策略测试。接收方 MTA 可以继续执行其他反垃圾邮件测试。

接收方 MTA 绝对不应该根据此结果拒绝邮件。

8.4 Fail

返回 "fail" 意味着客户端未通过发件人策略测试。接收方 MTA 可以拒绝邮件。

如果发布 ADMD 选择返回解释字符串(使用 "exp" 修饰符), 则该字符串应该作为 SMTP 响应的一部分返回。如果没有给出解释字符串, 则接收方 MTA 应该使用通用的解释。

建议在返回给发送方的 SMTP 响应中包含发布域的信息以及该域的联系信息(如可用)。这有助于调试和可能帮助防止合法邮件被阻止。

示例 SMTP 响应:

550-5.7.1 SPF MAIL FROM check failed:
550-5.7.1 The domain example.com explains:
550 5.7.1 Please see http://www.example.com/mailpolicy.html

8.5 Softfail

返回 "softfail" 意味着主机可能未被授权发送邮件, 但转换尚未完成。

接收方 MTA 不应该根据此结果拒绝邮件, 但可以以某种方式将其标记为可疑。例如, 接收方 MTA 可以将邮件放入垃圾邮件文件夹或为其添加标头。

8.6 Temperror

返回 "temperror" 意味着在 SPF 评估期间遇到了临时错误。接收方 MTA 应该接受邮件但可能希望稍后重试 SPF 检查。

例如, 如果 DNS 服务器暂时不可用, 接收方可能希望接受邮件并在稍后的时间重新评估 SPF 策略。

8.7 Permerror

返回 "permerror" 意味着在 SPF 评估期间遇到了永久错误。这可能是由于域的 SPF 记录中的语法错误或其他配置问题。

接收方 MTA 可以拒绝邮件或接受它但将其标记为可疑。域的所有者应该被通知错误以便他们可以纠正 SPF 记录。