如何配置 Postfix 以静默删除/丢弃从我的用户之一发送到外部地址的邮件?
我已经能够使用以下 Transport_maps 丢弃发送到外部地址的所有邮件
example.com :
* discard:
不过,我只想将此规则应用于我的 Postfix 服务器中的一个用户。
此外,发送到外部和本地地址的邮件应该仅发送给本地用户。
为什么我需要这个?
我工作的公司认为实习生不应该直接给客户发邮件。因此,实习生将使用客户地址发送一封邮件,to
并将其主管添加到cc
.那么Postfix只需将邮件传递给主管,以便他可以检查并将邮件发送给客户,而不需要搜索客户的地址。
答案1
为了完成 OP 需要的操作,我们需要在传输级别进行检查,结果证明这很简单。
添加以下行到/etc/postfix/main.cf
sender_dependent_default_transport_maps = hash:/etc/postfix/sender_transport_maps
创造/etc/postfix/sender_transport_maps如下
[email protected] discard
创建postfix映射文件并重启postfix
cd /etc/postfix postmap sender_transport_maps service postfix restart
此方法之所以有效,是因为 postfix 仅对出站邮件使用传输映射。在这种情况下,我们不使用普通的 smtp 服务 (smtp:),而是使用 postfix DISCARD 服务。
答案2
sender_dependent_default_transport_maps 对我来说根本不起作用。即使在 master.cf 中使用 smtpd -vv 来增加调试也无助于让我知道它为什么不起作用(可能是旧的 postfix 版本)。
相反我用了
smtpd_sender_restrictions = check_sender_access pcre:/etc/postfix/sender_domains, discard
sender_domains 文件包含
/[email protected]/ DISCARD
/@domain.com/ OK
例如,然后重新启动 postfix (PCRE 文件不需要/不能进行 postmap'd)