pattern-list

<source>Хаб задаёт сам

Какой список правил применяется к письмам из этого источника
в конфигурации это строкаpattern-listвнутри блока <source>
Ссылка на список правил выбора

Одна строка со ссылкой. Список правил объявляется отдельно, блоком <pattern-list>, а здесь называется по имени — и с этого момента письма из этого источника проверяются его правилами.

Порядок в файле. Руководство требует объявлять список выше источника (§ 3.3.7.42). MTA 6.0 принимает и ссылку вперёд — проверено на узле 15.09.2026: источник общего логина ссылается на список, объявленный ниже в том же файле, и письма ушли потоками по его правилам. Порядок руководства держать стоит: на другой версии MTA ссылка вперёд может не разрешиться. Второе ограничение жёсткое: список у источника ровно один — всё, что нужно этому источнику, приходится выразить внутри него.

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

Главная ловушка — «один список на источник» вместе с наследованием. Узкий блок <source> не добавляет правил к списку широкого, а заменяет список целиком. Строка в блоке подсети отменяет общий список, и все правила, которые в нём были, для этой подсети перестают действовать разом.
Что делает Хаб. Пишет сам — один список pmta-pattern с правилом на каждый домен отправки, собранный из пар «домен + адрес» (они видны на карточке узла: «Инфраструктура → Узлы», блок «Адреса и домены»); пересечений между правилами нет. Объявлен список в файле адресов узла, а подключён дважды: к общему источнику 0/0 в основном файле конфигурации и к источнику подачи общего логина в файле адресов. В базовой конфигурации, которая ставится до появления пар, списка нет.
Рекомендуемые значения

Что ставить. Значение — имя объявленного списка, выбирать тут нечего. Выбор появляется раньше, при устройстве списков:

Устройство Когда Чем неудобно
один список на источник обычный случай всё в одном месте, порядок надо держать вручную
список, вызывающий другой (call-to:) правила естественно делятся на группы на две ступени сложнее читать

Помните про порядок в файле: списки — выше, источники — ниже.

Оба ограничения — «один на источник» и «объявить выше» — из руководства. Замечание про замену списка при наследовании — наше.
Пример в конфигурации
# список объявляется до источника, который на него ссылается
<pattern-list mta-hub-senders>
    mail-from /@shop\.example\.com$/ virtual-mta=shop-example-com
</pattern-list>

<source {pmta-auth}>
    pattern-list mta-hub-senders    default-virtual-mta mta-hub-pool
</source>
Схема та же, что в рабочей конфигурации Хаба: список, ссылка на него из источника подачи и пул по умолчанию. Последняя строка — страховка: письмо, не подошедшее ни под одно правило, уйдёт пулом, а не останется без потока.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Объявляют список ниже источника

§ 3.3.7.42

Чем чреватоРуководство называет это ошибкой: список обязан стоять до источника. MTA 6.0 ссылку вперёд разрешает (проверено на узле 15.09.2026), но поведение не обещано — на другой версии конфигурация может не примениться целиком, и узел останется на прежней.
Как заметитьНа 6.0 — никакого. Если перезагрузка перестала проходить после смены версии MTA, а ошибка указывает на блок источника, — дело в порядке.
Как правильноДержать порядок «сначала списки, потом источники», как требует руководство.

Дописывают ссылку в узкий блок, ожидая сложения правил

§ 9.4.2

Чем чреватоСписок у источника один. Узкий блок не добавляет правила к общему списку, а заменяет его — и для этой подсети общие правила перестают работать разом.
Как заметитьПосле добавления «частного» списка часть отправителей подсети уходит потоком по умолчанию вместо прежнего.
Как правильноСобрать все нужные правила в один список для этой подсети, либо пользоваться call-to: — вызовом другого списка из первого.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
pattern-list <name>
Значения
имя блока со списком правил, объявленного выше в файле
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<source>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива живёт в <source> и сливается по правилу источников: более узкий блок перекрывает более широкий. Слияния списков при этом не происходит — узкий блок заменяет ссылку целиком, потому что список у источника может быть только один.
Как проверить на узле
Проверять надо ссылку — что список с таким именем объявлен, — и результат в учёте:
grep -n "pattern-list" /etc/pmta/config /etc/pmta/virtualhost.txt
pmtaacctfind --output csv[orig,vmta] /var/log/pmta/acct-*.csv | head -20
У каждой ссылки pattern-list имя должен найтись блок <pattern-list имя> — в этом файле или в подключённом; список выше источника — порядок руководства. В учёте поток в поле vmta должен соответствовать домену обратного адреса; при rewrite-list в поле orig стоит уже переписанный адрес, а правила сверяли исходный.
В Хабе
Управляется
Инфраструктура → Адреса отправки
Значение
Хаб подбирает сам — темп, стадия прогрева, метрики
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Классификация отказов