我们在让 Postfix 以一种非常特殊的方式运行时遇到了一些麻烦,其中只有本地部分(即没有@domain)的发件人和收件人地址会以不同的方式处理。
我们有许多使用 mailx 发送消息的应用程序。我们想知道发送方的用户名和主机名。例如,如果 root 从 db001.company.local 发送电子邮件,我们希望该电子邮件来自[电子邮件保护]。这是通过确保 $myorigin 设置为 $myhostname 来实现的。
我们还希望不合格的收件人附加不同的域。例如,如果将邮件发送给“dbadmin”,则它应符合“[电子邮件保护]'。但是,根据 Postfix 和 $myorigin 的性质,不合格的收件人反而有资格[电子邮件保护]。我们不想调整所有服务器上的别名以进行适当转发。(事实上,每个可能的收件人都没有 /etc/passwd 中的条目)所有公司员工都在 Exchange 上拥有邮箱,Postfix 最终会路由到该邮箱,并且不使用或访问本地 Linux/Unix 邮箱。我们很乐意告诉我们的应用程序所有者确保他们为所有收件人使用完全合格的电子邮件地址,但权力规定必须容纳任何疏忽。
如果我们保持 $myorigin 等于 $myhostname,我们可以通过在“recipient_canonical_maps”中添加如下条目来解决此问题:
@$myorigin@company.com
但不幸的是,我们不能在这些映射文件中使用变量。我们还想避免手动输入和维护每个服务器在“recipient_canonical_maps”中的实际主机名。也许一旦我们的服务器被“傀儡化”,我们就可以动态调整这个文件,但我们还没有做到这一点。
经过一下午的折腾,我决定联系您。您有什么想法吗?提前谢谢您。
答案1
这不可能。
根据文档,如果设置了,postfix 会将值附加myorigin
到邮件系统中任何位置的所有非 fqdn 本地部分append_at_myorigin
。
如果每个地址都使用不同的localpart;在这种情况下,您可以使用 virtual_alias_maps 将 localparts 转换为给定的完全限定地址。