proxy-include-tlv

<virtual-mta>Хаб задаёт сам

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

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

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

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

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

Главная ловушка — забыть про третий уровень. Строка в блоке <proxy> сильнее этой, и настройка адреса отправки на неё не влияет.
Что делает Хаб. Пишет domain в каждом адресе отправки через прокси — в блоках proxy-<ярлык> файла /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 <see-global>
Значения
domain
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<virtual-mta>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Строка живёт в <virtual-mta> и перекрывает такую же строку уровня узла для этого адреса отправки. Её саму перекрывает одноимённая строка в блоке <proxy>.
Как проверить на узле
Проверять надо на прокси — в заголовке соединения:
tcpdump -A -i any -c 20 'port 5000'
Поле идёт двоичным блоком с кодом 0xE0 и строкой домена в UTF-8.
В Хабе
Значение
Хаб подбирает сам — темп, стадия прогрева, метрики
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Ротация адресов отправки