bounce-category-patterns

<domain>

Какой список шаблонов классифицирует отказы этого получателя первым
в конфигурации это строкаbounce-category-patternsвнутри блока <domain>
Свой разбор ответов впереди общего

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

Порядок разбора трёхступенчатый: сначала названный здесь список, потом безымянный блок из конфигурации, потом набор из файла умолчаний. Разбор не останавливается на несовпадении: если ваш список ничего не узнал, дальше работают общие. Убрать категорию этой строкой нельзя, можно только добавить свою или перехватить чужую раньше.

Строка ничего не решает про судьбу письма. Отбито оно или нет, определяют совсем другие настройки; здесь назначается только ярлык в учёте. Ярлык, впрочем, попадает в отчёты и в статистику, а по ней уже принимаются решения о базе.

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

Начните с безымянного блока. Он действует на всех и покрывает большинство ответов. Именованный список нужен, когда конкретный приёмник формулирует по-своему.

Категорию можно придумать свою. Имена не ограничены списком из семнадцати вендорских — новое имя просто появится в отчётах и в поле bounceCat.

Строка не печатается в настройках очереди. pmta show settings её не показывает — проверять придётся по конфигурации.

Совет начинать с безымянного блока — наш. Из руководства здесь трёхступенчатый порядок разбора, свобода в именах категорий и форма записи шаблона.
Пример в конфигурации
# свой разбор для одного почтовика, впереди общего
<bounce-category-patterns custom>
    /no longer available/ quota-issues
    rcpt-to /invalid recipient/ recipient-related
</bounce-category-patterns>

<domain hotmail.com>
    bounce-category-patterns custom</domain>
Пометка rcpt-to сужает шаблон до ответов на команду RCPT — без неё он сравнивается с ответами на всех этапах разговора.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Пытаются списком отменить отказ

§ 11.7

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

Ждут, что свой список заменит общие

§ 11.7

Чем чреватоПри несовпадении разбор идёт дальше — в безымянный блок и в файл умолчаний. Категория, которую вы считали исключённой, назначается общими шаблонами.
Как заметитьВ отчётах встречается категория, которой нет в вашем списке.
Как правильноПерехватывать нужные ответы своим шаблоном раньше, а не рассчитывать на отсутствие правила.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
bounce-category-patterns <name>
Значения
имя ранее объявленного блока разбора отказов; общие списки применяются после него в любом случае
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<domain>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Значение сливается по блокам <domain> от общего к частному: побеждает наиболее подходящий блок, а не последний по файлу. Наследуется имя списка, а не его содержимое: сам блок разбора объявляется отдельно и на уровне конфигурации, а не внутри <domain>. Подхватывается по pmta reload; уже записанные отказы не пересчитываются.
Как проверить на узле
В настройках очереди строки нет — остаётся конфигурация и распределение категорий в учёте:
grep -n bounce-category-patterns /etc/pmta/config
pmtastats bounce-categories --bounceCat all /var/log/pmta/acct-*.csv
Вторая команда показывает, по каким категориям разошлись отказы: большая доля other означает, что шаблоны не узнают ответы этого приёмника. Хаб распределение по категориям собирает; именованных списков не пишет — в шаблоне политик стоит общий безымянный блок.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Разобраться с доставляемостью · Настроить темп под провайдера