为某些地址中继电子邮件,使用 Postfix 为其他地址转发

nwe*_*hof 3 smtp postfix mail-forwarding

example.com为使用外部服务提供商处的 Exchange 服务器收发电子邮件的客户管理一个域(比方说)。所以我让 MX 记录指向 Exchange 服务器,假设mail.provider.com. 现在我想将电子邮件me@example.com转发到我自己的电子邮件帐户me@me.com。不幸的是,服务提供商告诉我,由于某种原因,他们无法执行此操作。

因为我可以控制 MX 记录,所以我的想法是让它指向我自己的运行 Postfix 和

  • 转发电子邮件me@example.comme@me.com
  • 将所有其他地址中继到 mail.provider.com

我想出的解决方案是将域添加到relay_domains并设置 Postfix 传输映射

relay_domains = example.com
transport_maps = hash:/etc/postfix/transport
Run Code Online (Sandbox Code Playgroud)

包含

me@example.com    virtual:
example.com       :[mail.provider.com]
.example.com      :[mail.provider.com]
Run Code Online (Sandbox Code Playgroud)

然后在虚拟别名映射中添加一个条目

me@example.com    me@me.com
Run Code Online (Sandbox Code Playgroud)

我认为这应该有效,但看起来有点难看。这会起作用吗?有更好的解决方案吗?

mas*_*oeh 5

而不是将 me@example.com 放在 transport_maps 中,您可以跳过该步骤并virtual_alias_maps直接使用。

# transport maps
example.com       :[mail.provider.com]
.example.com      :[mail.provider.com]

# virtual alias maps
me@example.com    me@me.com
Run Code Online (Sandbox Code Playgroud)

虚拟别名映射是 postfix 中的特殊映射,它覆盖电子邮件别名,而不管它们的域类。您可以将它用于relay_domainslocal_domainsvirtual_mailbox_domains

除了技术点,我还要指出您的客户会意识到您的服务器位于他们真实服务器的前面。他们可能认为你在窥探他们的谈话。您应该考虑这种方法的一些含义。