policyd-spf 拒绝带有“?all”SPF 记录的邮件

policyd-spf 拒绝带有“?all”SPF 记录的邮件

我们的一位客户收到了来自其一位客户的邮件,但邮件被拒收。发件人的 SPF 记录为:

v=spf1 +a +mx +ip4:12.34.56.78 ?all

该邮件并非来自 12.34.56.78,但据我所知,“?all”表示我的邮件服务器 (postfix) 应该接受它。对吗?

我可以更改我的“/etc/postfix-policyd-spf-python/policyd-spf.conf”以使其接受这些电子邮件吗?如果可以,该怎么做?

我该这么做吗?

FWIW py 错误日志中的消息是:

Message rejected due to: access neither permitted nor denied.

提前致谢。

更新:

我的 SPF 策略是:

HELO_reject = SPF_Not_Pass
Mail_From_reject = Fail

该邮件在 HELO 阶段被拒绝,现在我已将其更改为“失败”。

答案1

该邮件并非来自 12.34.56.78,但据我所知,“?all”表示我的邮件服务器 (postfix) 应该接受它。对吗?

是的,但不是应该, 只是故意的

这里,你可以看到这Neutral意味着The SPF record specifies explicitly that nothing can be said about validity

但是 postfix 的默认 SPF 策略是:

HELO_reject = SPF_Not_Pass

意味着如果 SPF 检查不通过(即失败、软失败、硬失败……),postfix 将拒绝 HELO

您可以更改 Postfix SPF 策略以接受电子邮件,即使 SPF 检查失败。

答案2

你说的没错。包含 ?all 策略只是表明发件人希望如何处理邮件。实际如何处理邮件则由您的系统决定。

您尚未发布您的政策,但您可以通过修改您的政策将其设置为允许此域或此条件。

看: http://manpages.ubuntu.com/manpages/lucid/man5/policyd-spf.conf.5.html

请注意,如果无法确定 SPF(例如 SPF 记录本身的格式错误或 DNS 问题),某些策略条件将拒绝电子邮件。

相关内容