Postfix SMTP 收件人过滤器未过滤

Postfix SMTP 收件人过滤器未过滤

我已经为 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_restrictionssmtpd_recipient_restrictions按照指定的顺序应用;第一个匹配的限制将生效。

由于您smtp_recipient_restrictions已将其permit_sasl_authenticated作为首要条件并check_recipient_access在未来的某个地方,因此任何经过身份验证的客户端都是被允许的,并且不再进行检查。

你可能还想阅读http://www.postfix.org/SMTPD_ACCESS_README.html

相关内容