server

<proxy>критично

Адрес и порт прокси-сервера
в конфигурации это строкаserverвнутри блока <proxy>
Куда узел идёт вместо приёмника

Строка задаёт адрес и порт самого прокси — того, к кому узел подключается вместо почтового сервера получателя. Можно записать адресом или именем.

Одна из двух обязательных строк блока. Руководство говорит прямо: блок <proxy> обязан содержать и server, и client. Без любой из них он бессмысленен.

Разрешение имён остаётся за узлом. Он по-прежнему сам ищет MX получателя и решает, к какому адресу надо подключиться, — а потом подключается к прокси и сообщает ему этот адрес в заголовке протокола. Прокси только исполняет.

Адрес здесь внутренний. Смысл всей затеи в том, что узлы стоят на внутренних адресах, а наружу смотрит одна машина — прокси. Порт обязателен: стандартного у этой роли нет.

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

Записать можно двумя способами, порт обязателен:

Значение Когда
10.1.2.3:5000 адрес — обычный случай для внутренней сети
proxy.internal:9999 имя — когда прокси переезжает

Умолчания нет: строка обязательна.

Обязательность обеих строк блока и обе формы записи — из руководства (§ 3.3.22, § 3.3.22.1). Замечание о том, что разрешение имён остаётся за узлом, — из § 11.3.
Пример в конфигурации
# две обязательные строки: куда идти и с какого адреса выходить
<proxy mta-proxy-a>
    server 10.1.2.3:5000    client 16.70.55.233:0  client.hostname.com
</proxy>
Адрес в первой строке внутренний — это сам прокси. Адрес во второй внешний: с него прокси выйдет к приёмнику.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Заводят блок с одной из двух обязательных строк

§ 3.3.22

Чем чреватоБлок требует и адреса прокси, и выходного адреса. С одной строкой он не работает, а ошибка обнаруживается при применении конфигурации.
Как заметитьСогласование конфигурации ругается на блок прокси.
Как правильноДописать вторую строку — client.

Ждут, что прокси сам найдёт получателя

§ 11.3

Чем чреватоРазрешение имён делает узел и передаёт прокси готовый адрес назначения. Прокси, настроенный ходить куда-то ещё, отправит письма не туда молча.
Как заметитьУчёт показывает доставку, получатели писем не видят.
Как правильноСверить настройку прокси: он должен подключаться к тому адресу, который пришёл в заголовке.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
server <endpoint>
Значения
адрес или имя, двоеточие, номер порта
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<proxy>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Наследования нет: строка живёт внутри своего <proxy>. Блоков может быть несколько, каждый со своим именем, и адреса отправки выбирают между ними строкой use-proxy.
Как проверить на узле
Первое, что стоит проверить, — доступен ли прокси с узла:
nc -zv 10.1.2.3 5000
Отказ соединения означает, что до прокси не достучаться, и письма уйдут в повтор либо на следующий прокси из списка. Сам обмен по протоколу проверяется уже доставкой.
В Хабе
Цена ошибки
с перерывом: применение прерывает работу узла
Сценарии
Отправка через прокси
Важность
критично