答案1
SPF 策略服务器(如 policyd-spf)没有拒绝没有 SPF 记录的域的选项。解决方案是使用自定义策略服务器。
答案2
如果您使用python policyd-spf,您可以编辑可执行文件(debian中为/usr/bin/policyd-spf):
在此代码块下的第 159 行:
if mfrom_policy == 'SPF_Not_Pass':
try:
unused_results.remove('Fail')
actions['reject'].append('Fail')
unused_results.remove('Softfail')
actions['reject'].append('Softfail')
unused_results.remove('Neutral')
actions['reject'].append('Neutral')
except:
if debugLevel >= 2: syslog.syslog('Configuration File parsing error: Mail_From_reject')
添加 :
elif mfrom_policy == 'Cerberus':
try:
unused_results.remove('Fail')
actions['reject'].append('Fail')
unused_results.remove('Softfail')
actions['reject'].append('Softfail')
unused_results.remove('None')
actions['reject'].append('None')
except:
if debugLevel >= 2: syslog.syslog('Configuration File parsing error: Mail_From_reject')
要激活这个新的“Cerberus”选项,请编辑配置文件/etc/postfix-policyd-spf-python/policyd-spf.conf并改变发件人拒绝邮件经过 ”塞伯鲁斯“ 像这样 :
# Mail_From_reject = Fail
Mail_From_reject = Cerberus
通过此修改,您可以轻松地从标准配置更改为更积极的配置,从而拒绝没有 spf 记录的域。
这适用于 Debian 10 和 ubuntu 20.04。