include-tlv

<proxy>

Передавать ли прокси домен очереди
в конфигурации это строкаinclude-tlv proxy-include-tlv виртуального MTA, затем глобальная настройкавнутри блока <proxy>
Что прокси узнаёт о письме

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

Требует второй версии протокола — в первой дополнительных полей просто нет. Цепочка умолчаний та же, что у версии: не задано здесь — смотрится proxy-include-tlv у адреса отправки, потом у узла.

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

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

Главная ловушка — ждать в поле адрес получателя. Там имя очереди. При включённом объединении по MX десяток доменов сольются в одно имя, и прокси, раскладывающий трафик по доменам, увидит не то, что ожидал.
Что делает Хаб. Не пишет: блоков <proxy> в конфигурации нет. Домен очереди гейт получает строкой proxy-include-tlv domain в каждом адресе отправки через прокси.
Рекомендуемые значения

Значение пока одно, вопрос — включать или нет:

Значение Когда
не задавать прокси решает по паре адресов
domain прокси раскладывает трафик по направлениям

Обязательное условие — вторая версия протокола.

Единственный тип поля, его код, автоматическая подстановка домена очереди и требование второй версии — из руководства (§ 3.3.22.4). Замечание про объединение по MX — оттуда же.
Пример в конфигурации
# поле работает только вместе со второй версией
<proxy mta-proxy>
    server proxy.internal:9999
    client 16.80.77.101 client2.hostname.com
    protocol-version 2
    include-tlv domain</proxy>
В поле уйдёт имя очереди. При объединении по MX это не имя домена получателя, а общее имя группы.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

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

§ 3.3.22.4

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