![如何使用 transport_maps 覆盖特定域的 MX 值但具有某种形式的冗余](https://linux22.com/image/623281/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20transport_maps%20%E8%A6%86%E7%9B%96%E7%89%B9%E5%AE%9A%E5%9F%9F%E7%9A%84%20MX%20%E5%80%BC%E4%BD%86%E5%85%B7%E6%9C%89%E6%9F%90%E7%A7%8D%E5%BD%A2%E5%BC%8F%E7%9A%84%E5%86%97%E4%BD%99.png)
我有一个 Postfix 邮件服务器,我想覆盖特定域的 MX 值。
据我了解,这可以通过使用 transport_maps 来实现
http://www.postfix.org/postconf.5.html#transport_maps
在 /etc/postfix/transport 中添加一行:
example.com smtp:[9.9.9.9]
使用以下方法生成 postmap 文件:
postmap 哈希:/etc/postfix/transport
在 /etc/postfix/main.cf 中添加或编辑一行:
transport_maps = hash:/etc/postfix/transport
重启 Postfix
我的问题是,通常使用 MX 地址时,您通常会有多个邮件服务器用于冗余(以防其中一个服务器离线)。我如何使用传输图实现相同的功能,因为它似乎指向单个 IP 地址。有没有办法设置,以便在第一个 IP 地址失败的情况下尝试多个 IP 地址。
答案1
据我所知,SMTP 传输不会这样做。但是,您可以设置一个虚拟 DNS 域,其中的 MX 记录指向您要中继邮件到的主机,并在传输图中使用它不带方括号:
dest.example.com smtp:dummy.example.net
答案2
从 Postfix >= 3.5 开始,可以在传输文件中写入
example.com smtp:bar.example, foo.example
所以如果 bar.example 不回复,则将使用 foo.example。
注意:postmap 实际语法是
postmap /etc/postfix/transport