Отказ на приветствии

EHLO failed
Приёмник отказывает словами, а не молчанием

Приёмник ответил ошибкой в самом начале сессии, ещё до того, как речь зашла о письме. Обычно это временный отказ: занят, сейчас не принимает, не разрешает соединение.

Ценность в том, что он отказывает словами. В отличие от молчания и обрыва, здесь есть текст ответа — а значит есть с чем работать: по нему можно понять причину и по нему же можно настроить реакцию.

Это хрестоматийный повод сбавить темп. Приёмник прямо сказал, что ему сейчас тяжело; продолжать с прежней скоростью — верный способ получить уже не временный отказ.

И это тот отказ, на который проще всего настроить автоматику. Правило по образцу ответа переводит очередь в щадящий режим (smtp-pattern-list) — текст ответа для того и нужен.

Главная ловушка — повторять с прежней скоростью. Временный отказ на приветствии означает просьбу подождать. Расписание повторов её услышит, а темп — нет: если щадящий режим не настроен, узел продолжит открывать соединения с прежней частотой, и приёмник ужесточит ответ.
Что делает Хаб. Реагирует снаружи — планировщик видит рост отказов по телеметрии и сбавляет темп сам.

⚠️ Движковая реакция у нас не подключена: правил по образцам ответа в конфигурации нет, значит очередь в щадящий режим сама не уйдёт (backoff-mode). Разница в скорости: MTA среагировал бы прямо в этом соединении, планировщик — минутами позже.

Текст ответа при этом до нас доходит: он попадает в учёт и виден в отказах очереди.

Рекомендуемые значения

Что делать при таком отказе:

Действие Когда
сбавить темп к приёмнику почти всегда — он об этом и просит
завести правило по образцу ответа если отказы повторяются
разобрать текст ответа всегда: в нём причина
увеличить число попыток никогда — ответ был про частоту

Читать текст, а не код. Один и тот же 421 у разных приёмников означает разное, и различает их именно текст.

Правило заводить по словам приёмника. Коды общие, слова конкретны — правило по коду поймает лишнее.

Таблица действий и совет читать текст, а не код, наши. Из руководства здесь причина отказа и то, что он приходит на первом шаге разговора.
Пример в конфигурации
# текст ответа — то, ради чего этот отказ и ценен
<smtp-pattern-list block-errors>
    reply /^421 .* too many errors/ mode=backoff</smtp-pattern-list>
Выделенная строка ловит конкретный текст, а не код целиком. Правило по одному лишь 421 поймало бы и «попробуйте позже», и «слишком много ошибок» — а это разные события.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Разобраться с доставляемостью · Настроить темп под провайдера