一个域的两个技术不同的邮件服务器(Postfix / Exchange)

tro*_*omm 2 domain-name-system exchange postfix mx-record microsoft-office-365

我在 Debain Postfix 邮件服务器上有几个用户。一切都很好。现在我们需要将一些用户放到托管的 Exchange Server (Office 365)。

是否可以以这种方式为一个域配置邮件服务器和 DNS MX,如果用户收件箱不在 server1 上,则查找将转发到 server2?

  • 最好的做法是什么?
  • 谁是发送smtp?

谢谢彼得

Tom*_*ime 5

嗯……不,是的。

问题是当 DNS MX 记录查找完成时,DNS 服务器不知道用户是谁(该信息不会发送到 DNS 服务器),因此 DNS 服务器无法发送专门用于一些用户。DNS 对您的用户如此了解会很奇怪(技术术语是“分层违规”)。另外,如果电子邮件有 2 个人To:在线,一个是给原始用户之一,另一个给 Exchange 用户呢?它变得混乱。

让我们将在 Postfix 服务器上发送电子邮件的用户称为“Group P”,将希望在 Exchange 上发送电子邮件的用户称为“Group E”。

解决方案是由Postfix服务器本地投递P组邮件,将E组邮件转发到Exchange服务器。同样,Exchange 服务器需要知道在本地传送 E 组的电子邮件,而 P 组的电子邮件需要转发。

关键是要确保这两个服务器具有完全相同的信息。否则,两个服务器都会在本地传递一个人的消息,或者(更糟糕的是)都不会认为他们对电子邮件负责,并且它会在服务器之间来回切换。

如果 E 组较小,解决方案:

如果 E 组很短(即只有少数例外),您可以这样做:

  • 在 Postfix 上,为每个用户设置别名以将他们的电子邮件转发到他们的 Exchange 帐户。
  • 在 Exchange 上,将服务器配置为将未知用户的电子邮件转发到 Postfix 服务器。(遗憾的是我不知道这个设置,因为我不知道 Exchange)。

大型网站的解决方案:

对于较大的配置,我建议将两个服务器(称为 serverE.example.com 和 serverP.example.com)配置为分别为 user@serverE.example.com 和 user@serverP.example.com 发送本地电子邮件,但是不在本地为 user@example.com 发送电子邮件。每台机器访问一个 LDAP/ActiceDirectory 数据库,该数据库指示(例如)tom@example.com 将他的电子邮件发送到 tom@serverP.example.com,geri@example.com 将她的电子邮件发送到 geri@serverE.example.com . 通过这种方式,事情保持同步,您只有一个地方可以更新。

鲜为人知的事实:使用 postfix,如果aliases文件包含:

tom: tom@serverP.example.com
geri: geri@serverE.example.com
Run Code Online (Sandbox Code Playgroud)

而mail.cf 的mydestination 包含serverP.example.com但不包含serverE.example.com,则mail totom将在本地投递,而mail togeri将被中继到serverE。它不会创建循环!

我提出这个问题是因为在我知道这一点之前,我编写了一个大的 perl 脚本,aliases为每个邮件服务器生成文件,以便(例如)tom不会出现在aliases文件中serverP,而只是所有其他的。一旦我知道这一点,我就删除了脚本。完全相同的aliases文件可以在所有机器上。(当然,由于 Exchange 不使用aliases文件,因此必须在这些服务器上执行其他操作。)

如果myorigin = example.com那么外发电子邮件将在行中包含“tom@example.com”,那么From:没有人会更明智地知道有两个电子邮件服务器。(我不知道 Exchange 等价物,但我确定它存在。)

测试建议

测试此配置时,不要只测试传入的电子邮件是否发送到正确的位置。还要确保从每个客户发送的电子邮件发送到正确的地方。例如,让 Exchange 用户发送一条消息To: tom, geri并确保两者都已送达。让 Debian 用户也这样做。我见过这样的情况(例如)在两台机器上都没有正确设置别名和/或转发,并且电子邮件tom在两台服务器上为用户本地传送。 tom不得不在两个地方阅读电子邮件,直到这个问题得到解决。哎呀!