将发送到特定地址的邮件重定向到各个邮件服务器 - postfix

将发送到特定地址的邮件重定向到各个邮件服务器 - postfix

我当前的设置:mailserver1 mailserver2(两者服务于同一域)

用户1 用户2

我想将所有发送给 user1 的邮件重定向到 mailserver1,将 user2 的所有邮件重定向到 mailserver2。

因此,我找到了很多教程,其中描述了如何将有关域的所有消息重定向到不同的邮件服务器,但不是针对每个单独的用户。

有人可以帮我配置一下吗?

答案1

我不确定我是否正确理解这两个服务器如何为同一域提供服务。您的域是否有两条具有相同优先级的 MX 记录,每台服务器一条,以便传入邮件分布在这两台服务器之间?

如果您想将特定帐户的邮件重定向到另一个地址,/etc/aliases将是要走的路。例如,要将收件人 users1 的邮件重定向到另一个地址:

user1: [email protected]

但要将邮件重定向到其他邮件服务器,我认为它需要自己的域。也许你可以使用IP...?

user1: anotheraddress@<IP of mailserver2>

我不太确定这是如何工作的,因为我没有邮件服务器负载平衡的经验,这就是我假设你正在做的事情。


编辑回应您的评论:我仍然不确定您想要完成什么。

发送至 user@domain 的邮件到达 server1,server1 根据 user@domain 决定将其重定向到 mailserver1 还是 mailserver2。但两个邮件服务器都包含在 MX 记录中并服务于相同的域(没有区别)

这对我来说似乎是矛盾的。如果您在 MX 记录中同时指定了 mailserver1 和 mailserver2,则发送服务器将随机选择其中一台服务器并将邮件传送到该服务器。只有其中一台服务器会接收邮件,因此如果 mailserver2 收到邮件,您在 mailserver1 上进行的任何配置都不会影响邮件。

此外,我想创建一个邮件网关,由接收者将邮件重定向到单独的邮件服务器。

您是否可能不想将传入邮件重定向到像 Postfix 这样的 MTA,而是重定向到像 Cyrus 或 dovecot 这样的 MDA,将邮件存储在用户邮箱中以供以后检索?

http://en.wikipedia.org/wiki/Message_transfer_agent
http://en.wikipedia.org/wiki/Mail_delivery_agent

我可以想象您正在寻找这样的设置:

          MX  +----+         +----+
        +---->|MTA1|\-------/|MDA1|
        |     +----+ \     / +----+
        |             \   /
+------+|              \ /
|Domain|+               +
+------+|              / \
        |             /   \
        |     +----+ /     \ +----+
        +---->|MTA2|/-------\|MDA1|
          MX  +----+         +----+

它可以这样工作:

  1. 有人向 user@domain 发送邮件;发送服务器随机决定将邮件传送到 MTA1 或 MTA2。
  2. MTA1和MTA2配置相同;有两个 MTA 只是出于冗余原因。它们解析收件人邮件地址的本地部分,并使用它来决定邮件应发送到哪个 MDA。
  3. MTA 将邮件传递给 MDA,例如通过LMTP
  4. MTA 将邮件存储在邮箱中。
  5. 用户现在可以连接到各自的 MDA 并检索邮件,例如通过 IMAP。

答案2

马丁的回答是正确的。

将两台邮件服务器配置为接受您的域及其唯一主机名的邮件。

例如,如果您的域名是 example.com,您的邮件服务器是 mail1.example.com 和 mail2.example.com,那么 mail1 应该接受 example.com 和 mail1.example.com 的邮件,mail2 应该接受 example.com 的邮件和 mail2.example.com

请注意,mail1.example.com 和 mail2.example.com 需要在您的 DNS 中定义或者作为两台服务器上 /etc/hosts 中的条目。据推测,它们已经在 DNS 中定义,因为您有指向它们的 MX 记录。

mail1 上的 /etc/aliases 中的条目会将某些用户的邮件重定向到 mail2 - 例如

用户1:[电子邮件受保护]

同样,您也可以在 mail2 上使用别名,将某些用户的邮件重定向到 mail1 - 但如果两台服务器都为同一地址定义了别名,请小心避免创建邮件循环。

编辑 /etc/aliases 后不要忘记运行“newaliases”命令。

更一般地说,如果其中一台邮件服务器运行 postfix,而另一台邮件服务器运行 MS Exchange,则将 Exchange 服务器隐藏在防火墙后面,并使 postfix 服务器成为您的邮件网关。 postfix 服务器应该有唯一的 MX 记录指向它,这样所有传入的邮件都会发送到它。然后,它决定是否在本地传递入站邮件,或将其中一些邮件转发到交换服务器。

您几乎肯定不需要两台 MX 服务器,拥有两台服务器可能会给您带来比您想象的更多的麻烦,特别是如果其中一个是功能强大、安全且强大的邮件服务器(如 postfix),而另一个是 Exchange。

有关拥有第二个 MX 服务器通常是错误的一些原因的简要总结,请参阅:

https://serverfault.com/questions/47312/mx-backup-service/47325#47325

该问题专门针对备份(优先级较低)MX 服务器,但同样的原则也适用 - 但更加复杂,因为(由于 DNS 循环)大约 50% 的传入邮件将发送到一台服务器,50% 发送到另一台服务器。

相关内容