如何使Postfix在展开别名后应用内容filter?

在我的邮件服务器上,我有一个从root到我的电子邮件地址(由同一个服务器处理)的别名。 我也有一个使用${recipient}content_filter 。 传入和传出的电子邮件按预期工作。 它们通过具有正确的收件人地址的内容filter进行过滤。

但是,当电子邮件从本地机器发送到root ,内容filter将被传递[email protected]而不是我的电子邮件地址。 在处理完电子邮件后,filter将其传回给Postfix,然后本地传送将其转发到正确的地址。

如何在应用内容filter之前获取别名?

当前设置

以下是我目前如何设置内容filter(在INSTALL.md中查找更多详细信息):

  • /etc/postfix/master.cf

     gpg-mailgate unix  -  nn  -   - pipe道
         flags = user = nobody argv = / usr / local / bin / gpg-mailgate.py $ {recipient}
     127.0.0.1:10028 inet n  -  n  -  10 smtpd
         -o content_filter =
         -o more_options =省略
    
  • /etc/postfix/main.cf

     content_filter = gpg-mailgate
     alias_maps = hash:/ etc / aliases
     local_recipient_maps = $ alias_maps $ virtual_mailbox_maps proxy:unix:passwd.byname
    

其他有趣的一点

/etc/aliases

 root: [email protected] 

根据日志 ,该别名只在本地交付代理中扩展:

 Nov 12 10:45:22 server2 postfix/local[29745]: 0AA16792: to=<[email protected]>, relay=local, delay=0.1, delays=0.05/0.01/0/0.04, dsn=2.0.0, status=sent (forwarded as 19F20A53) 

/etc/aliases声明了本地别名,因此仅被本地传递使用。 根据ADDRESS_REWRITING_README ,只有在收到邮件时才会扩展虚拟别名,而不是本地别名。 解决scheme是声明虚拟别名 。 本地别名可以被删除。