我在 centos 7 中使用 postfix+dovecot。
我使用
postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination,reject_invalid_hostname,reject_non_fqdn_hostname,reject_non_fqdn_sender,reject_non_fqdn_recipient'
postconf -e 'smtpd_sender_restrictions =reject_non_fqdn_sender,reject_unknown_sender_domain,reject_rbl_client sbl-xbl.spamhaus.org,check_policy_service unix:private/policy'
postconf -e 'policy_time_limit = 3600s'
postconf -e 'policy-spf_time_limit = 3600'
设置 postfix main.cf。
注意check_policy_service unix:private/policy
在smtpd_sender_restrictions
,这意味着我证明我使用正确的邮件域发送邮件。
我认为我的postconf
是完美的,但有人说smtpd_sender_restrictions
应该在smtpd_recipient_restrictions
。SPF
应该添加到 smtpd_sender_restrictions 还是 smtpd_recipient_restrictions?
答案1
这些选项将在 或 中正常smtpd_sender_restrictions
运行smtpd_recipient_restrictions
。
您应该将它们添加到的原因smtpd_recipient_restrictions
与 SMTP 协议本身有关。在协议的每个阶段,发件人首先使用 EHLO 或 HELO 标识自己,然后使用 MAIL FROM 发送发件人的电子邮件地址,然后使用 RCPT TO 发送收件人的地址。在每个阶段,Postfix 都可以采取行动,例如使用smtpd_helo_restrictions
和smtpd_sender_restrictions
。smtpd_recipient_restrictions
但如果您在 MAIL FROM 之后拒绝收到的邮件,则您不知道预期的收件人是谁。如果邮件是合法的并且收件人抱怨,您将无法在日志中找到他们。通过等到收件人地址发送之后,您可以记录有关该消息的所有可用元数据,以防您以后需要查找它。