Postfix 作为智能主机?这可能吗?

Postfix 作为智能主机?这可能吗?

我们在 3 个独立的公共静态 IP 上有 3 个 SMTP 服务器。我们在单个静态 IP 上有一个辅助故障转移连接。我想将所有 3 个 SMTP 服务器放在路由器后面并脱离公共 IP,使用 postfix 在主互联网连接和故障转移上接受邮件,然后将所有电子邮件路由到现在的内部 SMTP 服务器。这是 3 个不同的电子邮件域。我如何设置 Postfix cnfg 来实现这一点?我在 Google 上搜索过这个问题,但没有找到合适的解决方案。我有一个现有的 Ubuntu 16.04 盒子,目前用作 SSH 网关,并且想将同一台机器用于 smtp-gateway/smarthost。

答案1

通过主互联网连接和备份互联网连接路由传入电子邮件就像在 DNS 中设置正确的 MX 优先级记录一样简单:

example.com.        86400   IN      MX      10 mx1.example.com.
example.com.        86400   IN      MX      20 mx2.example.com.
mx1.example.com.    86400   IN      A       <ip-on-primary-internet-connection>
mx1.example.com.    86400   IN      A       <ip-on-secondary-internet-connection>

您的其他域名也类似:

example.net.        86400   IN      MX      10 mx1.example.com.
example.net.        86400   IN      MX      20 mx2.example.com.

在 Postfix 中,您需要一个配置,该配置将接受 example.com 和 example.net 的传入邮件以进行中继,而不是进行本地传送,并将其路由到正确的内部服务器。大致如下:

将 example.com 和 example.net 添加到relay_domains参数:

[...]
relay_domains = $mydestination, example.com, example.net
[...]

设置交通地图,同样在/etc/postfix/main.cf

[...]
transport_maps = hash:/etc/postfix/transport
[...]

并且该映射/etc/postfix/transport会将每个域的邮件路由到特定的 SMTP 服务器:

example.com       smtp:[internalhost1.example.com]
example.net       smtp:[internalhost2.example.com]

相关内容