<bounce-processor>

Разбор асинхронных отказов
Откуда берётся настоящая доля жёстких отказов

Отказы бывают двух пород. Синхронный приёмник называет прямо в разговоре, и он попадает в учёт сам, записью вида b. Асинхронный приходит письмом — через минуты или часы, — и без этого блока узнать о нём неоткуда.

Блок ловит письма по вложенному списку адресов и разбирает их. Что узнал — пишет записью вида rb; что делать с самими письмами, решают deliver-matched-email и deliver-unmatched-email.

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

Условие работы — приём этих писем вообще. Список адресов решает судьбу уже принятого письма; разрешает приём другая строка, relay-address. Без неё анти-релей отобьёт отчёт жёстким отказом ещё на подходе.

Вложить в блок можно <email-patterns> — набор образцов для приёмников, чьи отчёты MTA не понимает сам.

Пример в конфигурации
# приём разрешает одна строка, разбор — блок
relay-address /^bounce@bounce\./
<bounce-processor>    deliver-matched-email no
    deliver-unmatched-email no
    <address-list>
        address /^bounce@bounce\./
    </address-list>
</bounce-processor>
Первая строка обязательна: без неё письма не будут приняты вовсе, и разбирать станет нечего.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Приём входящей почты