process-x-virtual-mta

<source>критичноХаб задаёт сам

Читать ли заголовок X-Virtual-MTA и выбирать по нему поток
в конфигурации это строкаprocess-x-virtual-mta falseвнутри блока <source>
Разрешение, без которого заголовок бесполезен

Умолчание — false, и совет руководства прямой: включайте у тех источников, с которых подаёте почту, если хотите, чтобы заголовок выбирал поток.

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

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

Главная ловушка. Разрешение не ограничено списком потоков: выдав его, вы разрешили называть любой поток на узле — включая тот, что прогревается для другого клиента. Единственная граница здесь — не выдавать разрешение вовсе.
Что делает Хаб. Пишет yes сам — во всех источниках рабочей конфигурации: и в подобранных по адресу, и в именованных источниках подачи с логином. Иначе прогрев не сможет назвать адрес: план ставит заголовок на каждое письмо, и это основной способ выбора потока в Хабе. Разделение клиентов держится не на этой строке, а на том, что подача идёт через Хаб под своими логинами.
Рекомендуемые значения

Что ставить. Ответ зависит ровно от одного — доверяете ли вы источнику:

Значение Когда
yes подача идёт от нас: планировщик, платформа под нашим контролем
no (умолчание) чужая подача, которой нельзя давать выбор адреса

Промежуточного варианта нет. Если чужому отправителю всё-таки нужен выбор — давать его правилом по образцу в <pattern-list>, где соответствие «отправитель → поток» задаёте вы, а не он.

Умолчание false и совет включать у источников подачи — из руководства. Разбивка «кому давать» — наша.
Пример в конфигурации
# разрешение выдаётся тому источнику, под который попадает адрес подачи
<source 10.0.0.0/24>
    process-x-virtual-mta yes    always-allow-relaying yes
</source>
Письмо из этой подсети со строкой x-virtual-mta: shop-example-com уйдёт названным потоком, а сам заголовок будет снят перед доставкой. Без строки разрешения тот же заголовок не сделает ничего и уедет получателю.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Ставят разрешение не тому источнику

§ 3.3.7.52

Чем чреватоБлоков <source> на узле обычно несколько, и выбирается тот, под который попадает адрес подающего. Разрешение в другом блоке не делает ничего: поток берётся умолчанием, а заголовок уезжает получателю.
Как заметитьВ доставленном письме виден X-Virtual-MTA, а в учёте стоит другое имя потока.
Как правильноНайти самый узкий блок <source>, под который попадает адрес подачи, и ставить разрешение в него.

Выдают разрешение чужому источнику

§ 9.4.1

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

Включают заголовок, не решив, что делать с опечаткой

§ 3.3.1.55.2

Чем чреватоИмя, которого на узле нет, по умолчанию означает отказ на подаче. Переименование потока — обычное дело при ротации — превращает каждое письмо со старым именем в отвергнутое.
Как заметитьПлатформа сообщает об отказах подачи сразу после смены имён потоков в конфигурации.
Как правильноРешить это парой invalid-virtual-mta-fallback и reject-invalid-virtual-mta — обе нужны вместе, порознь ни одна не работает.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
process-x-virtual-mta <boolean>
Значения
yes | no | true | false
Умолчание
false § 3.3.7.52
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<source>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива живёт в <source> и сливается по правилу источников: более узкий блок перекрывает более широкий. Разрешение, выданное в <source> 0/0, действует и на все подсети, для которых не сказано обратное, — а значит, «выдать только своим» означает no в широком блоке и yes в узком, а не наоборот.
⇄

Связанные директивы

4 связи

Как проверить на узле
Разрешение проверяется по конфигурации — узел его отдельно не показывает:
grep -n -B5 process-x-virtual-mta /etc/pmta/config
Найденный блок должен быть тем, под который попадает адрес подачи, и самым узким из совпавших. Сработало ли разрешение, проверяется по учёту: если в поле vmta стоит не то имя, что было в заголовке, — значит блок не тот.
В Хабе
Управляется
Инфраструктура → Адреса отправки
Значение
Хаб подбирает сам — темп, стадия прогрева, метрики
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Ротация адресов отправки · Подключить платформу отправки
Важность
критично