在 mydestinations 中与 catchall 复合的外部地址的别名

hor*_*ren 2 postfix alias

我有一个接受来自任何域的电子邮件的邮件服务器。这是通过在 Postfix's 中使用以下行来完成的main.cf

mydestination = regexp:/etc/postfix/mydestinations.reg
Run Code Online (Sandbox Code Playgroud)

mydestinations.reg看起来像这样:

/^.*/                           OK
Run Code Online (Sandbox Code Playgroud)

现在,我想将电子邮件转发给特定用户(例如 to admin)到外部电子邮件地址。我添加了以下行/etc/aliases

admin: email@externaldomain.com
Run Code Online (Sandbox Code Playgroud)

运行后newaliasesadmin规则发送电子邮件,但 Postfix 尝试在本地而不是远程发送电子邮件。这会导致 Postfix 日志中出现以下错误消息:

status=bounced (unknown user: "email")
Run Code Online (Sandbox Code Playgroud)

我的猜测是,Postfix 假定它externaldomain.com在其目的地,因为它被配置为接受任何域。

现在我的问题是:如何告诉 Postfix 将电子邮件转发到外部域,同时保持笼统mydestination完好无损?
旁注:如果可能,我想避免使用虚拟别名。

mas*_*oeh 5

我的猜测是,Postfix 假设 externaldomain.com 位于其目的地,因为它被配置为接受任何域。

是的,这是真的

现在我的问题是:如何告诉 Postfix 将电子邮件转发到外部域,同时保持通用目标的完整性?

要从 postfix 覆盖下一跳查找,您需要为transport_maps alias 中使用的每个外部地址定义 entry in 。

# main.cf
transport_maps = hash:/etc/postfix/externaladdr

# /etc/postfix/externaladdr
email@externaldomain.com  smtp:externaldomain.com
Run Code Online (Sandbox Code Playgroud)

有了这个条目smtp:externaldomain.com,postfix 将尝试通过smtp传输将电子邮件发送到 externaldomain.com 的邮件服务器。