proxy-include-tlv

Global

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

Строка добавляет в заголовок протокола поле с доменом очереди. Тип пока один — domain, значение MTA подставляет сам.

Требует второй версии протокола — в первой дополнительных полей нет.

Уровней три, и этот самый общий: самое точное — include-tlv в самом блоке прокси, потом такая же строка у адреса отправки, потом эта.

Домен очереди — не всегда домен получателя. Это имя очереди: при объединении по MX или переименовании очереди оно другое.

Главная ловушка — задать на узле и удивиться, что часть адресов отправки ведёт себя иначе. Уровней три, и любой из двух нижних перекрывает этот молча.
Что делает Хаб. На уровне узла не пишет: proxy-include-tlv domain стоит в каждом адресе отправки через прокси, в /etc/pmta/proxy.txt, рядом с proxy-protocol 2.

🔎 Домен очереди едет гейту в заголовке PROXY, и получателя гейт узнаёт, не заглядывая в разговор SMTP. Прокси для выхода он выбирает не по домену, а по ярлыку из строки smtp-proxy-source-host.

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

Значение выбирают по возможностям прокси:

Значение Когда
не задавать прокси решает по паре адресов
domain прокси раскладывает трафик по направлениям
Единственный тип поля, его код, автоматическая подстановка домена очереди и требование второй версии — из руководства (§ 3.3.1.49).
Пример в конфигурации
# без второй версии строка ничего не добавит
proxy-protocol 2
proxy-include-tlv domain
В поле уйдёт имя очереди, а при объединении по MX это общее имя группы.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Включают поле при первой версии протокола

наш опыт

Чем чреватоВ первой версии дополнительных полей нет: строка молча ничего не добавит.
Как заметитьСтрока задана, прокси домена не получает.
Как правильноПоставить вторую версию — в блоке прокси или строкой proxy-protocol.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
proxy-include-tlv TYPE
Значения
domain
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
Global, <virtual-mta>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Строка пишется в корне файла, раздел Global, и достаётся всем адресам отправки, пока они не зададут своё. Самый точный уровень — одноимённая строка в самом блоке <proxy>.
Как проверить на узле
Проверять надо на прокси — в заголовке соединения:
tcpdump -A -i any -c 20 'port 5000'
Поле идёт двоичным блоком с кодом 0xE0 и строкой домена в UTF-8.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Настроить темп под провайдера · Отправка через прокси