CentOS | Sendmail
我的 sendmail.mc 文件中有以下行:
define(`SMART_HOST',`relay:[1.1.1.1]:[2.2.2.2]')
我的理解是,sendmail 将始终智能主机到 1.1.1.1,然后在必要时故障转移到使用 2.2.2.2。
我可以在这里指定第三个条目吗?例如:
define(`SMART_HOST',`relay:[1.1.1.1]:[2.2.2.2]:[3.3.3.3]')
我在这里可以指定条目数的限制是什么?
答案1
如果您查看 $#relay mailer 定义,您将看到它的定义如下:
Mrelay, P=[IPC], F=mDFMuXa8, S=EnvFromSMTP/HdrFromSMTP, R=MasqSMTP, E=\r\n, L=2040,
T=DNS/RFC822/SMTP,
A=TCP $h
因此你的问题实际上就变成了:$h 可以是冒号分隔的列表吗?如果是,那么有多少个主机? 蝙蝠书在第 739 页回答道:
从 V8 sendmail 开始,$h(可能是解析规则集 0 返回的)可以是以冒号分隔的主机列表。sendmail 程序会依次尝试从左到右连接每个主机:
A=TCP 主机A:主机B:主机C
在这里,它首先尝试连接到主机 A。如果失败,则接下来尝试主机 B,依此类推。通常,尝试主机意味着首先尝试其 MX 记录,如果没有 MX 记录,则尝试其 A 或 AAAA 记录。
对于实际的限制,必须查看 sendmail 源来验证是否存在。
其中隐含了第二个参数,A=TCP $h
省略了该参数,这是端口号(默认为 25)。您可以拥有一个主机列表和一个端口,但我不确定是否(或如何)可以拥有一个主机列表,其中每个主机的传入连接监听端口都不同。对于如此复杂而棘手的设置,我会编写另一个可以利用这一点的交付代理。