sendmail SMART_HOST 配置行中可以指定多少个条目?

sendmail SMART_HOST 配置行中可以指定多少个条目?

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)。您可以拥有一个主机列表和一个端口,但我不确定是否(或如何)可以拥有一个主机列表,其中每个主机的传入连接监听端口都不同。对于如此复杂而棘手的设置,我会编写另一个可以利用这一点的交付代理。

相关内容