如何丢弃从特定本地用户发送到外部地址的邮件?

如何丢弃从特定本地用户发送到外部地址的邮件?

如何配置 Postfix 以静默删除/丢弃从我的用户之一发送到外部地址的邮件?

我已经能够使用以下 Transport_maps 丢弃发送到外部地址的所有邮件

example.com      :
*          discard:

不过,我只想将此规则应用于我的 Postfix 服务器中的一个用户。

此外,发送到外部和本地地址的邮件应该仅发送给本地用户。

为什么我需要这个?

我工作的公司认为实习生不应该直接给客户发邮件。因此,实习生将使用客户地址发送一封邮件,to并将其主管添加到cc.那么Postfix只需将邮件传递给主管,以便他可以检查并将邮件发送给客户,而不需要搜索客户的地址。

答案1

为了完成 OP 需要的操作,我们需要在传输级别进行检查,结果证明这很简单。

  1. 添加以下行到/etc/postfix/main.cf

    sender_dependent_default_transport_maps = hash:/etc/postfix/sender_transport_maps
    
  2. 创造/etc/postfix/sender_transport_maps如下

    [email protected]   discard
    
  3. 创建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)

相关内容