我已经设置了一个 Postfix 服务器,它看起来运行良好。
foo.com
是其主要领域,
bar.com
是仅用作 的另一个名称/别名的二级域名foo.com
。
我有以下功能配置:
/etc/postfix/main.cf:
virtual_mailbox_domains = foo.com
virtual_alias_domains = bar.com
virtual_alias_maps = hash:/etc/postfix/virtual_aliases
在/etc/postfix/virtual_aliases中:
@bar.com @foo.com
这似乎按预期工作。 收到的任何电子邮件[email protected]
都会映射到 的邮箱[email protected]
并发送到[email protected]
的邮箱。
当一封无法送达的电子邮件发送到 时,问题就出现了[email protected]
。Postfix 将其映射到foo.com
,找不到有效的收件人,然后退回该电子邮件。
退回邮件如下所示:
<[email protected]>: unknown user: "[email protected]"
Reporting-MTA: dns; mx.foo.com
X-Postfix-Sender: rfc822; [email protected]
Final-Recipient: rfc822; [email protected]
Action: failed
Status: 5.1.1
Diagnostic-Code: X-Postfix; unknown user: "[email protected]"
退回邮件已重写了所有bar.com
对 的引用foo.com
。
由于发件人为 写了一封电子邮件[email protected]
,我认为退回邮件中对 的所有引用@foo.com
都令人困惑。此外,我想向普通用户隐藏 的事实,即 实际上foo.com
是bar.com
。
是否可以配置 postfix 仅执行 virtual_alias 重写内部? 换句话说,尝试转发到foo.com
,但如果失败则返回一个退回邮件,表明在 找不到用户bar.com
?
答案1
我将我的问题发布到了 postfix-users 邮件列表并收到了这个回复,它说明了为什么我使用的别名配置是个坏主意以及如何纠正它:
是的,这是通配符重写的问题;postfix 无法在传送之前验证收件人,这使您成为反向散射源。
不要使用通配符重写,而要使用 1-1 用户映射。如果用户数量较多,请使用您喜欢的脚本语言自动创建文件。
[email protected] [email protected] [email protected] [email protected]
诺埃尔·琼斯