use-proxy

<virtual-mta>

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

Строка называет список блоков <proxy>, через которые идёт отправка. Умолчания нет — без неё узел подключается к приёмникам сам.

🔴 Список строго запасной, а не балансирующий. Руководство говорит это дословно: второй прокси берётся, только когда соединение с первым не удалось, третий — когда не удались оба. Распределить нагрузку между прокси этой строкой нельзя.

Каждое имя обязано быть объявлено блоком <proxy> — иначе конфигурация не пройдёт проверку.

Несовместима с smtp-proxy-source-host — это второй способ настроить прокси, и вместе они не работают.

Главная ловушка — забыть про третий уровень. Строка в блоке <proxy> сильнее этой, и настройка адреса отправки на неё не влияет.
Что делает Хаб. Не пишет: гейт Хаба собран на строчной форме — smtp-proxy-source-host в каждом адресе отправки. Её вендор рекомендует вместо этой строки, и в одном адресе обе формы несовместимы. Блоков <proxy> в конфигурации нет.

🔎 Запасного прокси у адреса отправки поэтому нет: раскладку трафика по прокси Хаб делает пулами наборов (proxy-pool-…), а не списком.

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

Список пишут в порядке предпочтения:

Значение Когда
не задавать (умолчание) узел выходит наружу сам
один прокси обычный случай
список нужен запасной на случай отказа
Порядок как строго запасной, требование объявить каждое имя блоком и несовместимость с smtp-proxy-source-host — из руководства (§ 3.3.1.47).
Пример в конфигурации
# список запасных, а не распределение: второй только при отказе первого
use-proxy mta-proxy-a, mta-proxy-b
Оба имени должны быть объявлены блоками <proxy> ниже или выше в файле.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Ждут распределения нагрузки по списку

наш опыт

Чем чреватоСписок строго запасной. Весь трафик идёт через первый прокси, пока он жив, и никакого разделения между ними не происходит.
Как заметитьНагрузка на первый прокси растёт, второй простаивает.
Как правильноРаспределять на стороне прокси либо разными списками у разных адресов отправки.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
use-proxy <see-global>
Значения
имена блоков прокси через запятую
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<virtual-mta>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Строка живёт в <virtual-mta> и перекрывает такую же строку уровня узла для этого адреса отправки. Её саму перекрывает одноимённая строка в блоке <proxy>.
Как проверить на узле
Через какой прокси ушло письмо, видно по столбцам прокси в учёте — сначала найти их номера:
head -1 "$(ls -t /var/log/pmta/acct-*.csv | head -1)" | tr -d '\r' | tr ',' '\n' | grep -n '^dlvProxy'
Номер строки — номер столбца: по нему строки разбирают, например cut -d, -f1,N. Пусто — поля dlvProxy… не выбраны в record-fields, и прокси в учёте не видны. Постоянная работа через второй прокси означает, что основной недоступен.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Ротация адресов отправки