forward-unmatched-to

<bounce-processor>

Куда пересылать письма, не распознанные как отказом
в конфигурации это строкаforward-unmatched-toвнутри блока <bounce-processor>
То же имя ещё 1:<bounce-processor><feedback-loop-processor>— часть из них другие настройки, часть та же самая
Что делать с тем, чего обработчик не понял

Обработчик разбирает входящие письма и узнаёт среди них отказы. Что не узнал — судьба решается двумя строками, и эта отвечает «переслать живому человеку». Строка повторяется: адресов может быть несколько.

🔴 Одной её мало. Руководство говорит прямо: при заданной пересылке deliver-unmatched-email обязана быть true, иначе письмо выбрасывается раньше, чем дойдёт до пересылки. Две строки работают только парой.

Зачем это нужно. Обработчик ловит письма по списку адресов, а узнаёт только то, что похоже на асинхронный отказ. Всё прочее, пришедшее на тот же адрес, — ответы людей, отчёты нестандартного вида, письма служб — для него мусор. Без пересылки этот мусор исчезает молча, и узнать, что он был, неоткуда.

Умолчания нет: не задана — пересылки не происходит.

Главная ловушка — задать пересылку и оставить доставку нераспознанного выключенной. Ошибки не будет, писем тоже: они выбрасываются до пересылки. Это самая тихая из возможных ошибок в этом блоке.
Что делает Хаб. Не пишет — и это стоит пересмотреть.

В нашей конфигурации обработчик ловит bounce@bounce.<домен> и, кроме того, роль-адреса dmarc@, postmaster@ и abuse@ — их приходится принимать, иначе анти-релей отбивает их жёстким отказом.

🔴 У нас deliver-unmatched-email no, то есть всё нераспознанное выбрасывается. Для bounce-processor это значит, что письма, пришедшие на его адреса и не похожие на асинхронный отказ, исчезают без следа.

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

Работает только в паре, и пара обязательна:

Что Значение
эта строка адрес живого ящика
deliver-unmatched-email обязательно true

Ящик должен быть настоящим и читаемым: смысл строки в том, чтобы кто-то увидел, что пришло.

Повторяемость и требование разрешённой доставки нераспознанного — из руководства (§ 3.3.3.4, § 3.3.3.1). Разбор того, что именно теряется, — наш.
Пример в конфигурации
# две строки работают только вместе
<bounce-processor>
    deliver-unmatched-email true
    forward-unmatched-to postmaster@example.com    <address-list>
        address /^bounce@bounce/
    </address-list>
</bounce-processor>
Уберите первую строку — и пересылка перестанет работать, не сообщив об этом.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Задают пересылку при выключенной доставке нераспознанного

§ 3.3.3.1

Чем чреватоПисьмо выбрасывается раньше, чем дойдёт до пересылки. Ни ошибки, ни письма — и понять это можно только по руководству.
Как заметитьСтрока задана, в ящике пересылки пусто.
Как правильноПоставить deliver-unmatched-email в true.

Пересылают в ящик, который никто не читает

наш опыт

Чем чреватоСмысл строки в том, чтобы человек увидел, что пришло. Ящик без читателя отличается от выброшенного письма только местом, где оно лежит.
Как заметитьЯщик пересылки не открывали месяцами.
Как правильноНазначить читателя либо разбирать содержимое ящика по расписанию.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
forward-unmatched-to <email-address>
Значения
адрес электронной почты; строка повторяется
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<bounce-processor>
Сколько раз
можно повторять
Всё здесь — из руководства, с разделом.
Наследование
Наследования нет: строка живёт внутри своего <bounce-processor> и решает судьбу писем, пойманных его списком адресов. У соседнего обработчика своя такая же строка и свой список.
Как проверить на узле
Проверка одна — послать на адрес обработчика письмо, которое он заведомо не узнает, и посмотреть, дошло ли оно до ящика пересылки:
grep -i "forward\|unmatched" /var/log/pmta/log | tail -20
Письмо должно оказаться в ящике пересылки. Не оказалось — проверьте deliver-unmatched-email: скорее всего он выключен, и письмо выброшено.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Приём входящей почты