我的问题似乎与如何设置 Postfix 仅检查我想要检查的域名的 SPF 记录-
我该如何修改我的 Postfix 服务器,以便它默认检查 SPF 以接收电子邮件,但允许我保留可以绕过检查的域的白名单?
我的 main.conf 文件包含一个节:
smtpd_recipient_restrictions = check_policy_service inet:127.0.0.1:10031,
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
check_policy_service unix:private/spfpolicy
(顺便说一下,10031 是受政策约束的)
我的 master.conf 文件包含一个节:
spfpolicy unix - n n - - spawn
user=nobody argv=/usr/bin/perl /usr/sbin/postfix-policyd-spf-perl
答案1
我正在用这个方法。
我有一个包含白名单和黑名单域名的列表:
/etc/postfix/sender_checks
example.com REJECT Spam detected
example.org REJECT Spam detected
example.net OK
当文件发生改变时,必须对其进行散列处理。
postmap /etc/postfix/sender_checks
check_sender_access
哈希映射在指令中引用smtpd_recipient_restrictions
:
smtpd_recipient_restrictions =
reject_invalid_hostname
reject_unknown_recipient_domain
reject_unauth_pipelining
reject_non_fqdn_sender
reject_unknown_sender_domain
reject_non_fqdn_recipient
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
check_sender_access hash:/etc/postfix/sender_checks
reject_rbl_client ix.dnsbl.manitu.net,
reject_rbl_client zen.spamhaus.org,
reject_rbl_client bl.spamcop.net,
reject_rbl_client b.barracudacentral.org,
reject_rbl_client dnsbl-1.uceprotect.net,
check_policy_service unix:private/policy-spf,
check_recipient_access hash:/etc/postfix/custom_replies
check_sender_access
如果需要,您可以将支票进一步移到前面。