Нумерованные части слияния

merge parts
Куски письма, собираемые по номерам

Шаблон письма делят на пронумерованные части — заголовки, абзац, блок абзацев, часть тела, — а каждому получателю собирают те, что названы в его переменной *parts: списком или диапазоном, например 1,3 или 1-3.

Порядок частей задаёт список: *parts=1,3,2 поставит третью часть перед второй.

Переменная из необязательной части нужна только тем получателям, кому эта часть уходит.

Главная ловушка — часть с переменной, которой получателю не дали. По умолчанию неопределённая переменная превращается в пустоту (mailmerge-expands-undefined-variables): в письме останется дыра на её месте.
Что делает Хаб. Не используется: письма Хаб подаёт по одному на получателя, а разнообразие текста даёт спинтаксом внутри письма.
Рекомендуемые значения

Как читается *parts:

Значение Что уйдёт
1-3 все три части
1,3 первая и третья
1,3,2 три части, третья перед второй
Части, переменная *parts, списки, диапазоны и порядок — из руководства (§ 11.19.4.2–11.19.4.3); умолчание для неопределённых переменных — § 3.3.1.39. Таблица — наша.
Пример в конфигурации
# получатель без второй части
XDFN FName="Bob" *parts=1,3
RCPT TO:<bob@example.com>
Переменные получателя задают командой XDFN перед его RCPT, а сами части передают командами XPRT.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Как проверить на узле
Проверить, разрешено ли слияние источнику:
grep -rn 'allow-mailmerge' /etc/pmta/
Без allow-mailmerge источник слияние не примет.
В Хабе
Цена ошибки
безопасно: неверное значение ничего не ломает
Сценарии
Прогрев адресов