Задача. Узел, чей MX-слушатель принимает отказы и жалобы по доменам, с которых он отправляет.
Из чего складывается:
Области у составляющих разные. Обработчики — собственные блоки, проверка SPF — у источника и подчиняется слиянию источников.
Как они взаимодействуют. Зависимость пересылки руководство называет прямо: forward-unmatched-to работает только при deliver-unmatched-email true. Умолчания отклонения описаны отдельно, и ловушка возникает на стыке: включив check-spf-inbound ради подлинности, включаешь и отказ по результатам проверки — reject-spf-check-fail и reject-spf-check-temperror по умолчанию true.
Строки обработчиков и проверки:
| Строка | Умолчание | Что задать |
|---|---|---|
| deliver-matched-email, оба обработчика | false | оставить false |
| deliver-unmatched-email | true, если нет forward-unmatched-to | true и ящик, который читают |
| check-spf-inbound | false | true, но с решением об отклонениях |
| reject-spf-check-fail, reject-spf-check-temperror | true | задать явно |
<bounce-processor> deliver-matched-email no deliver-unmatched-email yes forward-unmatched-to bounces-review@example.com <address-list> address /^bounce@bounce\./ </address-list> </bounce-processor>
grep -n -A6 '<bounce-processor\|<feedback-loop-processor' /etc/pmta/config