我已经为 Postfix 设置了黑名单收件人列表,以便 Postfix 服务器不会将邮件转发给他们(main.cf 中的 smtpd_recipient_access 参数)。
地址已正确列在文件中,每行末尾均带有 REJECT。我按照标准步骤创建了数据库哈希 (postmap hash:/etc/postfix/recipient_access)。
我可以通过使用以下方法测试邮件是否被拒绝:
postmap -q [email protected] hash:/etc/postfix/recipient_access
我收到了答复:正如预期的那样,REJECT。
黑名单文件中的所有地址都是非本地的,即它们不受“mydestinations”变量的覆盖。
但是,使用 Thunderbird 通过 Postfix SMTP 服务器发送邮件只会将邮件发送到黑名单地址而不会被拒绝。我猜想我的其他中继配置可能会让这封邮件尽管与我的黑名单匹配,但仍被中继,但我找不到问题所在。
我认为相关的配置参数是:
mydestination = $myhostname, localhost, localhost.localdomain, localhost.$myhostname Relay_domains = $mydestination,代理:ldap:/etc/postfix/ldap/relay_domains.cf 中继主机 = smtpd_data_restrictions = rejection_unauth_pipelining smtpd_end_of_data_restrictions = check_policy_service inet:127.0.0.1:10031 smtpd_helo_required = 是 smtpd_helo_restrictions = permit_mynetworks,permit_sasl_authenticated,check_helo_access pcre:/etc/postfix/helo_access.pcre smtpd_recipient_restrictions = permit_sasl_authenticated、reject_unknown_sender_domain、reject_unknown_recipient_domain、reject_non_fqdn_sender、reject_non_fqdn_recipient、reject_unlisted_recipient、check_recipient_access 哈希:/etc/postfix/recipient_access、check_policy_service inet:127.0.0.1:7777、check_policy_service inet:127.0.0.1:10031、permit_mynetworks、permit_sasl_authenticated、reject_unauth_destination、reject_non_fqdn_helo_hostname、reject_invalid_helo_hostname smtpd_reject_unlisted_recipient = 是 smtpd_reject_unlisted_sender = 是 smtpd_sasl_auth_enable = 是 smtpd_sasl_authenticated_header =否
如果其他参数相关,我可以发布整个配置
答案1
限制列表(例如)中指定的限制smtpd_helo_restrictions
将smtpd_recipient_restrictions
按照指定的顺序应用;第一个匹配的限制将生效。
由于您smtp_recipient_restrictions
已将其permit_sasl_authenticated
作为首要条件并check_recipient_access
在未来的某个地方,因此任何经过身份验证的客户端都是被允许的,并且不再进行检查。