![在 mydestinations 中与 catchall 复合的外部地址别名](https://linux22.com/image/656481/%E5%9C%A8%20mydestinations%20%E4%B8%AD%E4%B8%8E%20catchall%20%E5%A4%8D%E5%90%88%E7%9A%84%E5%A4%96%E9%83%A8%E5%9C%B0%E5%9D%80%E5%88%AB%E5%90%8D.png)
我有一个可以接受来自任何域的电子邮件的邮件服务器。这是通过在 Postfix 中使用以下行来实现的main.cf
:
mydestination = regexp:/etc/postfix/mydestinations.reg
看起来mydestinations.reg
像这样:
/^.*/ OK
现在,我想将电子邮件转发给特定用户(例如admin
)到外部电子邮件地址。我在以下行中添加了/etc/aliases
admin: [email protected]
运行newaliases
并发送电子邮件后admin
,规则得到满足,但 Postfix 尝试在本地而不是远程发送电子邮件。这导致 Postfix 日志中出现以下错误消息:
status=bounced (unknown user: "email")
我的猜测是,Postfix 假定这externaldomain.com
是它的目的地,因为它被配置为接受任何域。
现在我的问题是:我怎样才能告诉 Postfix 将电子邮件转发到外部域,同时保持邮件mydestination
完整?
附注:如果可能的话,我想避免使用虚拟别名。
答案1
我的猜测是,Postfix 假定 externaldomain.com 在其目的地,因为它被配置为接受任何域。
是的,这是真的
现在我的问题是:我如何告诉 Postfix 将电子邮件转发到外部域,同时保持 catchall mydestination 完好无损?
要覆盖来自后缀的下一跳查找,您需要在中定义条目transport_maps
对于别名中使用的每个外部地址。
# main.cf
transport_maps = hash:/etc/postfix/externaladdr
# /etc/postfix/externaladdr
[email protected] smtp:externaldomain.com
通过此条目smtp:externaldomain.com
,postfix 将尝试通过smtp
传输将电子邮件发送到 externaldomain.com 的邮件服务器。