如何在 postfix 中设置多个中继主机?

Pug*_* Se 5 postfix

我想在 中有一个主机列表relayhost,当 postfix 尝试发送电子邮件时,它会将其发送给其中任何一个,如果该主机处于离线状态,它会尝试另一个。

可以在配置文件中完成,还是我需要使用 DNS 设置?
如果我给relayhost一个hostname有多个 mx 记录的化妆,它会尝试所有吗?
如果我给relayhost一个[hostname]有多个记录的化妆,它会如何处理?

参考:http : //www.postfix.org/postconf.5.html#relayhost

Uri*_*Uri 13

Postfix 3.5 及更高版本支持多个目标。

relayhost = mail1.example.com:587, mail2.example.com:587
relayhost = [mail1.example.com]:587, [mail2.example.com]:587
Run Code Online (Sandbox Code Playgroud)

  • 很好,3.5 于 2020 年 3 月 16 日发布,距最初的问题提出大约 4 年:-) (5认同)

Dia*_*ond 6

Postfix 不允许relayhosts为冗余定义多个条目。看看你引用的页面:

在SMTP的情况下,指定一个域名,主机名,主机名:端口,[主机名]:端口,[hostaddress]或[hostaddress]:端口。表单 [hostname] 关闭 MX 查找。

如您所见,这里无法定义多个地址/主机名。

如果我给中继主机一个有多个 mx 记录的虚构主机名,它会尝试所有吗?

我猜是这样,但是如果它需要身份验证,那么它无论如何都可能无法与辅助服务器一起使用并失败。

如果我给中继主机一个有多个记录的虚构 [主机名],它将如何处理?

它将使用 dns 在循环方法中返回的第一个地址(A 记录)。但这也不意味着它会尝试另一个,以防 dns 服务器返回的一个失败。

话虽如此,你可以看看这个后缀选项:smtp_fallback_relay


Dan*_*rub 4

我建议使用DNS

但您不需要设置多个 MX 记录 - 您需要使用多个 A 记录解析给定的主机名(主机应解析为给定的设置 IP 地址)。

对于邮件来说,使用多个主机来处理流量是很常见的。这是使用多个 mx 记录完成的。因此,当您从自己的主机/中继发送时使用相同的设置时,这很简单。