我已将 Postfix 配置为拒绝来自没有 PTR 记录的主机和没有 A 记录的主机名的电子邮件。我发现有合法的邮件服务器具有有效的 SPF 记录,但其主机名没有 A 记录。结果,合法的电子邮件被拒绝了。
有没有办法配置 Postfix 以接受具有有效 SPF 记录的电子邮件,即使主机名没有 A 记录或 IP 地址没有 PTR 记录?
答案1
如果check_policy_service
回应permit
(来自access(5)
其他行动)而不是中立的接受行动OK
与拒绝行动reject
。这需要修改 SPF 策略服务policyd-spf.conf
。虽然我从未真正尝试过,但根据手册页,似乎和的Pass
条件HELO
都MAIL FROM
允许使用在中定义的任何操作access(5)
. 产生的配置参数为policyd-spf.conf
:
HELO_pass_restriction = permit
Mail_From_pass_restriction = permit
现在,限制的顺序开始变得重要,因为 SPF 策略服务回答:
reject
在 SPF 上Fail
permit
在 SPF 上Pass
OK
对其他所有情况(包括错误、Softfail
和Neutral
无 SPF)均持中立态度。
然后,Postfixmain.cf
可以按照以下顺序设置所有限制:
smtpd_recipient_restrictions =
permit_mynetworks,
[checks done regardless of SPF],
check_policy_service unix:private/policy-spf,
[checks done only if SPF didn't either Pass or Fail],
permit
和permit
都是reject
在smtpd_recipient_restrictions
限制按指定顺序应用;第一个匹配的限制将生效
而任何限制的中性响应都会导致转向下一个限制。