smtp-pattern-list

<domain>Хаб задаёт сам

Какой список образцов применяется к ответам этого получателя
в конфигурации это строкаsmtp-pattern-listвнутри блока <domain>
Правила чтения чужих ответов

Значение — имя списка, объявленного блоком <smtp-pattern-list>. Список подключается к соединениям с этим получателем, и им разбираются его ответы SMTP.

Ради чего: ответы приёмников не стандартизованы. Один и тот же смысл — «вы шлёте слишком быстро», «адрес не существует», «ваш адрес в чёрном списке» — каждый пишет по-своему. Список образцов переводит эти тексты в действия MTA, включая переход очереди в щадящий режим.

Отсюда прямая связь со backoff-mode: без образцов MTA узнаёт о проблеме только по кодам ответа, а коды у большинства приёмников одинаковые.

Главная ловушка — образцы стареют. Приёмники меняют тексты ответов, и правило, написанное под прежний текст, перестаёт совпадать молча. Щадящий режим не включается, письма идут прежним темпом, и обнаруживается это по росту отказов, а не по неработающему правилу.

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

Вторая половина: список подключается по имени, и имя нигде не сверяется. Опечатка означает, что образцов у этого получателя нет вовсе — и об этом не сообщается.

Что делает Хаб. Пишет — в шаблоне политик получателей, подключая список blocking-errors ко всем пятнадцати блокам: четырнадцати крупных почтовиков и общему <domain *>.

Список общий с Protosender: те же образцы, та же раскладка. Это часть договорённости о едином формате конфигурации — узел, настроенный Хабом, читается обоими продуктами.

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

Что ставить. Значение — имя списка; выбор в том, сколько списков держать:

Значение Когда
один общий список образцы у приёмников похожи — наш случай
свой список на приёмника у крупного приёмника особые ответы, и общие правила ему мешают
не писать ответы разбираются только по кодам, без текстов

Третье — вендорское умолчание, и оно слабее: коды у приёмников одинаковые, а смысл в тексте.

Синтаксис и назначение — из руководства, § 3.3.10.101. Связь со щадящим режимом — из разбора самого механизма. Разбивка случаев наша.
Пример в конфигурации
# список объявляется отдельно, получатель на него ссылается
<smtp-pattern-list blocking-errors>
</smtp-pattern-list>

<domain $mailru>
    smtp-pattern-list blocking-errors</domain>
Имя нигде не сверяется: опечатка означает, что образцов у этого получателя нет, и об этом не сообщается.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

Типичные ошибки и проблемы

что делают не так и чем это кончается2 ошибки▶

Считают, что образцы работают, раз строка стоит

наш опыт

Чем чреватоПриёмники меняют тексты ответов. Правило под прежний текст перестаёт совпадать молча: щадящий режим не включается, письма идут прежним темпом, отказы растут.
Как заметитьОтказы у приёмника растут, а очередь в щадящий режим не переходит.
Как правильноСверять образцы с живыми текстами ответов из учёта, а не полагаться на наличие строки.

Ошибаются в имени списка

§ 3.3.10.101

Чем чреватоИмя нигде не сверяется. Опечатка означает, что образцов у этого получателя нет вовсе, и никакой ошибки при этом не возникает.
Как заметитьУ одного приёмника поведение отличается от соседей при одинаковых настройках.
Как правильноСверить имя в строке подключения с именем объявленного блока.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
smtp-pattern-list <name>
Значения
имя списка образцов
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<domain>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива живёт в <domain> и подчиняется слиянию блоков получателей: более узкий блок перекрывает более широкий. Список, названный в блоке *, достанется всем приёмникам, которые сами не назвали своего.
Как проверить на узле
Проверять надо не подключение, а совпадение образцов с живыми ответами:
grep -n 'smtp-pattern-list' /etc/pmta/config
grep -i 'dsnDiag\|smtp;4\|smtp;5' /var/log/pmta/acct-*.csv 2>/dev/null | tail -20
Вторая команда даёт живые тексты ответов приёмников. Их и надо сверять с образцами: правило, не совпадающее с текущим текстом, не срабатывает и об этом не сообщает.
В Хабе
Значение
Хаб подбирает сам — темп, стадия прогрева, метрики
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Настроить темп под провайдера