include-headers-from

<virtual-mta-pool>

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

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

А вот как она складывается с другими уровнями, руководство не говорит. Правило сложения сформулировано только для узла и адреса отправки: «если у адреса отправки уже есть своя строка, применяются обе». Про пул — молчание, и остальные пуловые директивы участник перекрывает обычным образом.

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

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

Значение — путь к файлу, как и на остальных уровнях. Решается здесь одно — где держать файл:

Уровень Кому достаётся Что известно про сложение
узел всем адресам отправки складывается с уровнем адреса — документировано
пул участникам не документировано
адрес отправки только ему складывается с уровнем узла

Пока не проверено опытом — держать файл на одном уровне.

Наследование участниками — из руководства (§ 3.3.13). То, что правило сложения для пула не описано, — наше наблюдение при сверке двух разделов.
Пример в конфигурации
# общий файл заголовков на всю волну адресов
<virtual-mta-pool warmup-wave-3>
    include-headers-from /etc/pmta/wave3-headers.txt    virtual-mta mta1
    virtual-mta mta2
</virtual-mta-pool>
Оба участника получат этот файл. Появится у mta1 собственная строка — и что произойдёт, руководство не описывает: сложение оговорено только для уровня узла.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Рассчитывают на сложение пула с адресом отправки

наш опыт

Чем чреватоПравило сложения документировано только для узла. Конфигурация, построенная на предположении, может дать не тот набор заголовков — и без единой ошибки при применении.
Как заметитьВ письме нет части ожидаемых заголовков либо есть лишние.
Как правильноДержать файл на одном уровне и проверять письмом. Если сложение через пул действительно нужно — сначала проверить его на стенде.

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

§ 3.3.13

Чем чреватоДля остальных пуловых директив собственная строка участника заменяет пуловую целиком. Здесь поведение не описано, и ожидание «добавится» ничем не подкреплено.
Как заметитьУ одного участника набор заголовков отличается от остальных непредсказуемо.
Как правильноСвести всё нужное в один файл для этого участника — так результат известен заранее.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
include-headers-from <see-reference>
Значения
путь к файлу с заголовками в формате RFC 2822
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<virtual-mta-pool>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Пул — средний из трёх уровней, и для этой директивы он описан хуже остальных. Документировано только одно: строка узла складывается со строкой адреса отправки. Что делает пуловая — перекрывается участником, как остальные пуловые директивы, или складывается, как строка узла, — руководство не говорит.
Как проверить на узле
Проверять только по доставленному письму. По конфигурации видно лишь, сколько файлов задействовано:
grep -rn include-headers-from /etc/pmta/config
Больше одной строки в выводе — повод посмотреть исходный код письма: что именно сложилось, а что перекрылось, известно только оттуда.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Ротация адресов отправки