suppression-lists

<virtual-mta-pool>

Списки подавления, общие для всех адресов пула
в конфигурации это строкаsuppression-listsвнутри блока <virtual-mta-pool>
То же имя ещё 2:<source><virtual-mta><virtual-mta-pool>— часть из них другие настройки, часть та же самая
Один список на всю группу адресов

Поведение то же, что у адреса отправки: письмо принимается, встаёт в очередь и отбивается с 5.7.1 (suppressed). Меняется только область — строка достаётся каждому участнику пула.

Смысл записи здесь один — не повторять. Группа адресов, которая обязана уважать один и тот же список, описывается одной строкой вместо повторения у каждого.

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

Главная ловушка — ждать сложения. Собственная строка участника заменяет пуловую целиком. Добавив адресу «свой» список, вы молча отключаете для него общий — и обнаруживается это по письмам, которые ушли, а не по ошибке в конфигурации.
Что делает Хаб. Не пишет: подавление работает до узла. Строка при этом — пример того, ради чего пул стоит использовать как область: сегодня общие правила Хаб повторяет каждому адресу отправки отдельно, и списки подавления повторялись бы точно так же.
Рекомендуемые значения

Значение — имена списков через запятую, как и у адреса отправки. Решается здесь одно — где держать список:

Где Кому достаётся Осторожно
в пуле всем участникам своя строка участника заменит целиком
у участника только ему пуловая для него перестаёт действовать
в обоих местах у участника действует только его перечислять надо все нужные списки
Наследование участниками — из руководства (§ 3.3.13). Правило «заменяет, а не дополняет» — общее для наследования директив, и здесь оно кусается сильнее всего.
Пример в конфигурации
# список уважают все адреса группы — одной строкой
<virtual-mta-pool warmup-wave-3>
    suppression-lists complaints,traps    virtual-mta mta1
    virtual-mta mta2
</virtual-mta-pool>
Оба участника получат оба списка. Если у mta1 появится собственная строка suppression-lists own, для него останется только own — complaints и traps перестанут проверяться.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Добавляют участнику свой список поверх пулового

§ 3.3.13

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

Ждут отказа при подаче

§ 11.15.2

Чем чреватоНа уровне пула и адреса отправки выбора нет: письмо принимается и отбивается позже. Отправитель узнаёт из отчёта, а не сразу.
Как заметитьПодача проходит без ошибок, отказы приходят потом.
Как правильноЕсли сигнал нужен при подаче — вешать список на <source> и ставить accept-invalid-recipients no.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
suppression-lists <see-reference>
Значения
имена объявленных списков адресов через запятую
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<virtual-mta-pool>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Пул — средний из трёх уровней. Строка достаётся каждому участнику, а собственная строка участника перекрывает её целиком. Проверка в <source> при этом отдельная и независимая: там подавление может сработать раньше и превратиться в отказ при подаче.
Как проверить на узле
Что реально действует у участника, видно по отказу — в его тексте стоит имя сработавшего списка:
pmtaacctfind --output csv[rcpt,vmta,dsnDiag] /var/log/pmta/acct-*.csv
Если имя пулового списка в отказах не появляется, а участник письма всё же отбивает, у него своя строка — она заменила пуловую. Искать надо в блоке самого адреса отправки.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Ротация адресов отправки