我想要一个主机列表relayhost
,当 postfix 尝试发送电子邮件时,它会将其发送给其中任何一个主机,如果该主机处于离线状态,它会尝试另一个主机。
可以在配置文件中完成吗,还是我需要使用 DNS 设置?
如果我给出一个包含多个 mx 记录的relayhost
虚构配置,它会尝试所有配置吗? 如果我给出一个包含多个 a 记录的虚构配置,它会如何处理?hostname
relayhost
[hostname]
答案1
Postfix 3.5 及更高版本支持多个目的地。
relayhost = mail1.example.com:587, mail2.example.com:587
relayhost = [mail1.example.com]:587, [mail2.example.com]:587
答案2
Postfix 不允许定义多个条目以relayhosts
实现冗余。请查看您引用的页面:
对于 SMTP,请指定A域名、主机名、主机名:端口、[主机名]:端口、[主机地址] 或 [主机地址]:端口。格式 [主机名] 关闭 MX 查找。
如您所见,这里无法定义多个地址/主机名。
如果我为 Relayhost 提供一个具有多个 mx 记录的虚构主机名,它会全部尝试吗?
我想是的,但是如果它需要身份验证,那么它可能无法与辅助服务器一起工作并失败。
如果我给中继主机一个虚构的具有多个记录的 [主机名],它将如何处理?
它会以轮询方式使用 DNS 返回的第一个地址(A 记录)。但这并不意味着如果 DNS 服务器返回的地址失败,它会尝试另一个地址。
话虽如此,您可以看看这个后缀选项:smtp_fallback_relay
答案3
我建议你选择DNS。
但是您不需要设置多个 MX 记录 - 您需要使用多个 A 记录来解析给定的主机名(主机应该解析为给定的一组 IP 地址)。
对于邮件来说,使用多个主机来处理流量是很常见的。这是使用多个 mx 记录来实现的。因此,当您从自己的主机/中继发送邮件时,使用相同的设置就很简单了。