rcpt-to

<pattern-list>

Правило по адресу получателя, выбирающее поток или приоритет
в конфигурации это строкаrcpt-toвнутри блока <pattern-list>
Выбор потока по получателю — с оговоркой, которую надо знать

Сверяет адрес получателя из команды SMTP RCPT TO. Форма та же, что у остальных правил списка: образец в косых чертах и результат — virtual-mta=имя, recipient-priority=N или call-to:.

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

Где оно уместно. Приоритет получателя — самый честный случай: recipient-priority=90 на письмах восстановления пароля поднимает их над рассылкой, и вопрос выбора потока при этом не встаёт.

Главная ловушка. Правило по получателю в рассылке ведёт себя не так, как читается. «Получателям Yahoo — отдельный поток» на письме с сотней адресов означает, что вся сотня уйдёт этим потоком, если адрес Yahoo оказался первым совпавшим. Разделение по получателю работает только при одном адресате на письмо.
Что делает Хаб. Не пишет. Выбор потока строится по домену отправителя — правилом по обратному адресу, — а разделение по получателю в Хабе решается блоками <domain> внутри потока: там оно действует на очередь, а не на письмо, и оговорки с несколькими адресатами не имеет.
Рекомендуемые значения

Когда правило по получателю действительно уместно:

Случай Годится Почему
приоритет транзакционных писем да приоритет ставится получателю, а не письму
письма с одним адресатом да оговорка не применяется
рассылка по многим адресам нет поток первого совпадения уйдёт на всех
разделение по почтовику нет, брать <domain> правила получателей — свойство очереди

Образцы пишут по тем же правилам, что и остальные: точки экранируются, конец домена закрепляется якорем.

Оговорка про нескольких получателей и совет вендора применять только к письмам с одним адресатом — из руководства. Разбивка по случаям — наша.
Пример в конфигурации
# безопасное применение: приоритет, а не выбор потока
<pattern-list mta-hub-senders>
    mail-from /@shop\.example\.com$/ virtual-mta=shop-example-com
    rcpt-to /^password-reset@/ recipient-priority=90</pattern-list>
Приоритет ставится получателю, поэтому оговорка про несколько адресатов здесь не мешает. Шкала 0–100, умолчание 50, так что 90 — это «вперёд обычной рассылки», а не «максимально срочно».
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Разделяют рассылку по получателям

§ 3.3.14.3

Чем чреватоПоток первого совпавшего получателя применяется ко всему письму. Часть рассылки уходит адресом, назначенным совсем другому почтовику, и в учёте это выглядит как ошибка маршрутизации.
Как заметитьУ получателей одного домена стоит имя потока, предназначенного другому.
Как правильноРазделять по отправителю — правилом по обратному адресу. Правила получателей задавать блоками <domain> внутри потока.

Пишут образец без якорей

§ 3.3.14

Чем чревато/customer/ совпадёт и с customer@ourshop.com, и с noreply@customer-support.example.net. Под правило попадают письма, для которых оно не писалось.
Как заметитьПоток получает получателей, которых ему не назначали.
Как правильноЗакреплять образец якорями и экранировать точки — как /^stud.*@somesite\.com$/ в примере руководства.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
rcpt-to <regex-rule>
Значения
образец в косых чертах и результат — virtual-mta=имя, recipient-priority=N или call-to:имя
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<pattern-list>
Сколько раз
можно повторять
Всё здесь — из руководства, с разделом.
Наследование
Наследования у правила нет: оно действует внутри своего блока <pattern-list>. Наследуется ссылка на список — pattern-list записана в <source> и сливается по правилу источников, причём узкий блок заменяет список целиком.
Как проверить на узле
Проверять надо на письме с несколькими получателями — именно там правило ведёт себя неочевидно:
pmtaacctfind --output csv[rcpt,vmta,jobId] /var/log/pmta/acct-*.csv | head -30
Если у писем одного задания в поле vmta стоит одно и то же имя, а получатели разные и под правило подходят не все — это и есть та самая оговорка. Не ошибка настройки, а описанное поведение.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Ротация адресов отправки · Подключить платформу отправки
Соседние настройки блока <pattern-list>:headermail-fromВсе 3 директив блока →