TL;DR:我试图强制 postfix 将本地用户发送给另一个本地用户的邮件路由到另一台服务器(中继主机)。这不适用于从外部发往本地的邮件。
我正在计划迁移邮件服务器堆栈(在新硬件上安装新 imap 和新 smtp)。在有限的时间内,一些用户将被路由到当前服务器,而其他用户将逐渐迁移到新邮件服务器。
当前服务器将负责所有路由(也是在 DNS 中注册为 MX 的服务器)。当收到邮件时,邮件将根据收件人邮件地址转发或不转发到新服务器。这很好用。
我在本地外发电子邮件路由方面遇到了问题(已迁移的同事试图向未迁移的同事发送邮件)。如果我什么都不做,已迁移的同事向未迁移的用户发送电子邮件时,他的邮件将出现在未迁移用户的未来收件箱中。因此,未迁移的用户在我迁移他之前不会收到这封邮件。
我希望新的 Postfix 能够将外发邮件路由到,relayhost
即使邮件是“本地”的。中继主机是 DNS 中列为 MX 的服务器,因此路由将与我用于传入邮件的路由相同。
我尝试了 transport_maps,但这会导致传入邮件在旧服务器和新服务器之间循环。这是因为 transport_maps 适用于所有电子邮件(包括来自外部的传入邮件),而不仅仅是本地用户发送的邮件。路由应该仅适用于本地用户的外发邮件,而不是所有邮件。
主文件:
transport_maps = hash:/etc/postfix/transport
运输:
domain.tld smtp:[old-smtp.domain.tld]
答案1
发送方依赖的中继主机映射应该可以完成这个工作。