pi.*_*pi. 4 postfix spam centos
我的 CentOS 服务器配置为仅用于发送邮件。我需要一个过滤器来拒绝针对选定目的地的邮件。例如,如果我测试
> mail -s "test" spam@trash.com
Run Code Online (Sandbox Code Playgroud)
我希望该邮件被拒绝而不发送。我已经探索过
smtpd_收件人限制
标记[和其他人],但我无法使其发挥作用。日志仍然显示邮件已发送并从队列中删除。
在 main.cf 文件中的 smtpd_recipient_restrictions 下,我有:
> check_sender_access hash:/etc/postfix/maps/access_sender
Run Code Online (Sandbox Code Playgroud)
例如我有的地方
@trash.com REJECT
Run Code Online (Sandbox Code Playgroud)
我想补充一点,该服务器将邮件转发到另一个服务器,但我希望在转发到主机之前可以过滤掉不需要的邮件。请帮忙。谢谢
该check_sender_access
选项仅适用于“发件人”地址。要根据“收件人”地址进行过滤,您可以通过以下两种方式之一执行此操作。
如果您只想过滤“收件人”地址,只需更改为check_sender_access
并check_recipient_access
保留当前的哈希文件即可。
一种更可扩展的过滤方式是通过标头。将以下内容添加到您的main.cf
文件中:
header_checks = regexp:/etc/postfix/header_checks
Run Code Online (Sandbox Code Playgroud)
然后在以下位置创建以下文件/etc/postfix/header_checks
:
/^To:.*address1@example.com.*$/ DISCARD blocked
/^To:.*address2@example.com.*$/ DISCARD blocked
/^To:.*address3@example.com.*$/ DISCARD blocked
/^To:.*address4@example.com.*$/ DISCARD blocked
Run Code Online (Sandbox Code Playgroud)
并重新启动Postfix。
注意-DISCARD
仍会显示为发送消息,但该消息将被默默丢弃。如果您想强制退回邮件,请使用REJECT
。
参考文档:
http://www.postfix.org/postconf.5.html#smtpd_recipient_restrictions http://www.postfix.org/header_checks.5.html