如何让 Postfix 在扩展别名后应用内容过滤器?

如何让 Postfix 在扩展别名后应用内容过滤器?

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

root但是,当从本地计算机发送电子邮件时,内容过滤器会通过[email protected],而不是我的电子邮件地址。处理完电子邮件后,过滤器会将其交还给 Postfix,然后本地投递会将其转发到正确的地址。

如何在应用内容过滤器之前扩展别名?

当前设置

以下是我目前设置内容过滤器的方式(更多详细信息请参见安装.md):

  • /etc/postfix/master.cf

    gpg-mailgate unix-nn--管道
        标志=用户=nobody argv=/usr/local/bin/gpg-mailgate.py ${recipient}
    127.0.0.1:10028 inet n-n-10 smtpd
        -o 内容过滤器=
        -o more_options=省略
    
  • /etc/postfix/main.cf

    content_filter = gpg-mailgate
    alias_maps = hash:/etc/aliases
    local_recipient_maps = $alias_maps $virtual_mailbox_maps 代理: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)

答案1

/etc/aliases声明本地别名,因此仅供本地交付使用。根据地址重写自述文件,接收邮件时只展开虚拟别名,不展开本地别名。解决方法是声明虚拟别名. 然后可以删除本地别名。

相关内容