Сколько записей можно указать в строке конфигурации sendmail SMART_HOST?

CentOS | Отправить письмо

У меня есть следующая строка в моем файле sendmail.mc:

define(`SMART_HOST',`relay:[1.1.1.1]:[2.2.2.2]')

Насколько я понимаю, sendmail всегда будет использовать smarthost для 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 hostA: hostB: hostC

Здесь он сначала пытается подключиться к hostA. Если это не удается, он затем пытается запустить hostB и так далее. Как обычно, попытка хоста означает сначала попытку его записей MX или записей A или AAAA, если записей MX нет.

Для фактического ограничения нужно было бы посмотреть на источники sendmail, чтобы проверить, существует ли какой-либо.

Второй аргумент подразумевается в A=TCP $h который опущен, и это номер порта (по умолчанию предполагается 25). У вас может быть список хостов и один порт, но я не уверен, можете ли вы (или каким образом) иметь список хостов с другим портом прослушивания для входящих соединений для каждого хоста в списке. Для такой сложной и хитрой установки я написал бы другого агента доставки, который мог бы использовать это.

Другие вопросы по тегам