jobid-header

<source>

Из какого заголовка брать метку задания вместо x-job
в конфигурации это строкаjobid-headerвнутри блока <source>
Метка задания под именем платформы

Директива называет свой заголовок взамен x-job. Смысл — принять письма платформы, которая уже помечает рассылки своим заголовком, не заставляя её переименовывать его под MTA.

Умолчания нет: не написана — берётся обычный способ.

Порядок старшинства руководство называет прямо. Если метку можно взять другими способами — разрешённым чтением x-job или переменной слияния *jobId, — они имеют преимущество. Названный здесь заголовок работает только тогда, когда старшие способы ничего не дали.

Про судьбу самого заголовка раздел молчит: снимается ли он перед доставкой, как x-job, руководство не говорит, и парной директивы «оставить» у него нет.

Главная ловушка — своё имя заголовка проигрывает штатному. Настроив приём меток из Campaign-Id и оставив включённым чтение x-job, вы получите метку из x-job каждый раз, когда оба заголовка окажутся в письме. Разойдётся это не сразу: пока платформа шлёт только свой заголовок, всё выглядит работающим.

Вторая половина — молчание руководства о том, снимается ли названный заголовок. Проверять придётся своим ящиком: если он доезжает до получателя, имя вашей кампании уезжает вместе с ним.

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

Директива пригодилась бы там, где узел Хаба принимает почту чужой платформы, у которой свой заголовок кампании, — но такая подача у нас идёт под общим логином и без меток.

Рекомендуемые значения

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

Значение Когда
не писать подающая сторона умеет ставить x-job
имя заголовка платформа уже метит рассылки своим заголовком, и менять её нельзя

Если строка нужна, чтение x-job на том же источнике разумно выключить: два способа сразу дают неочевидное старшинство.

Отсутствие умолчания и старшинство обычного способа и переменной слияния — из руководства, § 3.3.7.50. Про судьбу названного заголовка руководство молчит. Совет выключать второй способ наш.
Пример в конфигурации
# метка берётся из заголовка платформы, штатный способ выключен
<source 10.0.0.0/24>
    jobid-header Campaign-Id    process-x-job false
</source>
Вторая строка здесь не лишняя: пока чтение x-job включено, оно старше — и письмо, где есть оба заголовка, получит метку из x-job.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Оставляют оба способа включёнными

§ 3.3.7.50

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

Ждут, что названный заголовок снимется сам

§ 3.3.7.50

Чем чреватоРуководство про это молчит, и парной директивы «оставить» у него нет. Если заголовок доезжает до получателя, имя кампании уходит вместе с письмом.
Как заметитьЗаголовок платформы виден в письме, полученном в контрольном ящике.
Как правильноПроверить своим ящиком, а при необходимости вычистить заголовок директивой remove-header у того же источника.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
jobid-header <header-name>
Значения
имя заголовка
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<source>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива живёт в <source> и подчиняется слиянию источников: соединение попадает под все адресные блоки, которые его накрывают, и узкий перекрывает широкий. Имя заголовка, названное в широком блоке, достанется и узким, которые сами не назвали своего.
Как проверить на узле
Строку видно в конфигурации, результат — в списке заданий:
grep -n 'jobid-header\|process-x-job' /etc/pmta/config /etc/pmta/virtualhost.txt
pmta show jobs --maxitems=20
Если метки в списке не те, что кладёт платформа в свой заголовок, — скорее всего сработал старший способ. Снимается ли названный заголовок перед доставкой, узнать можно только письмом в свой ящик: руководство об этом не пишет.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Подключить платформу отправки