custom-dsn-from-header

Global

Заголовок From в формируемых отчётах, заданный дословно
в конфигурации это строкаcustom-dsn-from-headerвнутри блока Global
Дословная форма того же заголовка

Значение — строка заголовка From для отчётов, которые формирует узел. Подстановок она не поддерживает: текст уходит в заголовок дословно.

Строк с этим назначением две, и они различаются ровно этим. Соседняя dsn-failed-from-template умеет подставлять девять значений исходного письма — имя узла, отправителя, получателя, тему и остальные. Эта не умеет ничего.

Держать обе в конфигурации незачем: какая победит, руководство не оговаривает.

Умолчания тоже не названо — не написана, MTA берёт свою.

Главная ловушка — адрес, из которого почту не забирают. Отчёт уходит отправителю исходного письма, и на него будут отвечать. Классическое Postmaster <postmaster@…> из примера руководства годится только там, где этот ящик действительно читают, а приём на него открыт правилом.

Вторая половина: строка молчит о подстановках. Написав в ней ${hostname}, вы получите в заголовке эти самые символы — без ошибки и без предупреждения.

Что делает Хаб. Не пишет — и проявиться строка не может: формирование отчётов выключено suppress-local-dsn во всех источниках подачи.
Рекомендуемые значения

Что ставить. Выбор между двумя строками одного назначения:

Значение Когда
не писать отчёты не формируются либо достаточно умолчания MTA
дословная строка нужен один и тот же отправитель отчёта, и подстановки не нужны

Если хочется имя узла в отображаемом имени — нужна соседняя строка с подстановками, а не эта.

Назначение и пример — из руководства, § 3.3.1.28. Умолчания там не названо, поддержка подстановок не упомянута — в отличие от соседней строки, где она названа прямо. Вывод об отсутствии подстановок наш.
Пример в конфигурации
# дословно: подстановки здесь не работают
custom-dsn-from-header "Postmaster <foobar@there.com>"
Текст уходит в заголовок как есть. Если нужна подстановка имени узла или темы, эта строка не подойдёт — нужна соседняя, с шаблоном.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Пишут подстановку в дословной строке

§ 3.3.1.29

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

Ставят адрес, из которого почту не забирают

наш опыт

Чем чреватоНа отчёты отвечают, и ответы уходят в непрочитанный ящик. Человек считает, что вы не отвечаете, и следующим шагом жалуется приёмнику.
Как заметитьВ заголовке служебный адрес узла, а приём на него не открыт правилом.
Как правильноУказать читаемый ящик и открыть приём на него.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
custom-dsn-from-header "<display name and address>"
Значения
строка заголовка From, без подстановок
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
Global
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива пишется в корне файла конфигурации и действует на весь узел: блока для неё нет, и наследования тоже. Разных отправителей отчёта для разных доменов задать нельзя.
Как проверить на узле
Проверять надо обе строки заголовка отправителя сразу:
grep -n 'custom-dsn-from-header\|dsn-failed-from-template\|suppress-local-dsn' /etc/pmta/config
Если нашлись обе, конфигурацию надо привести к одной: руководство не говорит, какая победит. Если подавление отчётов включено, ни одна не проявится.
В Хабе
Цена ошибки
безопасно: неверное значение ничего не ломает
Сценарии
Приём входящей почты