为什么SPF_Not_Pass拒绝“中性”结果?

我有麻烦了解policyd-spf的默认HELO检查策略。 RFC 4408在2.5.2节中说明了这一点

“中性”结果必须与“无”结果一致

但是policyd-spf的man页面定义如下SPF_Not_pass

SPF_Not_Pass(默认) – 如果结果不是通过,无或Temperror,则拒绝(如果SPF结果为失败,软失败,中立,错误,则拒绝)。 与Mail From checking不同,没有标准的电子邮件用例,HELO检查不应该通过HELO名称的SPFlogging(例如,透明转发不是问题)。 从技术上讲,这个选项并不完全符合RFC 4408,因为 SPF检查Mail From标识是强制性的,而Neutral和None结果必须被视为相同 。 HELO / EHLO在SMTP对话中首先被知道,如果HELO检查已经导致邮件被拒绝,没有实际的理由浪费Mail From检查资源。 用于HELO时,这些偏差不应引起互操作性问题。

这个描述解释了为什么可以省略Mail From身份的SPF检查,但是没有回答这个问题:为什么Neutral被拒绝?

我不确定你想要什么答案。 如果你调用这个configuration选项,那么中立就会被拒绝,因为这就是守护进程所要做的。 它注意到,正如你所强调的那样,这不符合RFC。 但是这里有一个问题: 你没有义务在服务器上接受任何特定的电子邮件 。 没有中央互联网法院,在Jon Postel的严厉肖像之下, 一群老年退伍军人裁决一个特定的服务器运营商是否错误地拒绝了一封电子邮件。

RFC在技术上是有约束力的,但在操作上不是这样; 你违反了他们越多,你就越不能正确地与他人交stream – 但是如果你想要这样做,你就可以自由地这样做。 您可以selectconfiguration您的服务器以拒绝具有SPF中性结果,或长度超过750 kB,或者​​在标题发件人地址中包含多个电子邮件或未能包含短语吱吱声ossifrage的 电子邮件 。 这是你的服务器; 你可以接受你喜欢的东西。

编辑 :这些部分的一些pipe理员认为,SPFlogging不会以垃圾邮件发送者的活跃信号为结束,并且惩罚或拒绝来自这些域名的邮件; 我提到这个来说明人们如何使用SPF衍生的信息从pipe理员到pipe理员有很大不同。

policyd-spf的作者大概认为,拒绝Neutral邮件导致更好的结果(更less的垃圾邮件,更多的火腿)比不这样做。 但是这是我的猜测。 只有他们可以肯定地说。