default-smtp-port

<domain>

На какой порт стучаться, если не задан явный список серверов
в конфигурации это строкаdefault-smtp-port 25внутри блока <domain>
Порт назначения как признак адреса отправки

Порт, на который узел отправляет почту по SMTP. Умолчание 25 — обычный почтовый порт, и в открытом интернете менять его незачем: приёмник слушает именно его.

Строка перекрывается списком серверов. Если у получателя задан smtp-hosts с портами после двоеточия, действуют они, а не эта строка.

Ради чего её вообще трогают. Руководство называет один сценарий: несколько узлов PowerMTA общаются через устройство трансляции адресов. Такое устройство умеет различать потоки по порту назначения — и тогда каждому адресу отправки не нужен свой локальный адрес, достаточно своего порта. Отсюда и пример руководства: два потока, 9001 и 9002.

Главная ловушка — правят в общем блоке. Порт задаётся получателю, и строка в блоке со звёздочкой уводит на нестандартный порт всю почту, включая ту, что идёт в открытый интернет. Там её никто не слушает: письма встают в очередь и уходят в отказ по сроку.
Что делает Хаб. Не пишет — остаётся вендорское 25. Узлы Хаба отправляют получателям напрямую или через прокси-гейт, и трансляции адресов между узлами нет: адреса отправки различаются самими адресами, а не портами.
Рекомендуемые значения

Оставьте умолчание, если не строите трансляцию адресов. Другого повода менять порт назначения в руководстве нет.

Задавайте внутри потока, а не глобально. Пример руководства написан именно так: строка стоит в блоке получателя внутри <virtual-mta>, и разные потоки получают разные порты.

Помните про перекрытие. Порт из smtp-hosts сильнее; задавать оба для одного получателя бессмысленно.

Требование задавать внутри потока — из примера руководства. Из него же умолчание 25, сценарий с трансляцией адресов и правило перекрытия списком серверов.
Пример в конфигурации
# два потока различаются портом назначения, а не локальным адресом
<virtual-mta vmta1>
    <domain *>
        default-smtp-port 9001    </domain>
</virtual-mta>

<virtual-mta vmta2>
    <domain *>
        default-smtp-port 9002    </domain>
</virtual-mta>
Звёздочка здесь безопасна, потому что блок вложен в поток: порт меняется только для писем этого VirtualMTA, а не для всей почты узла.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Задают нестандартный порт в общем блоке

наш опыт

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

Задают порт и рядом список серверов с портами

§ 3.3.10.99

Чем чреватоДействуют порты из списка, а эта строка не делает ничего. При чтении конфигурации она вводит в заблуждение.
Как заметитьСтрока задана, соединения идут на другой порт.
Как правильноУбрать одну из двух: они про одно и то же, и сильнее список.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
default-smtp-port <integer>
Значения
номер порта TCP; умолчание 25; перекрывается портами, указанными в списке серверов
Умолчание
25 § 3.3.10.99
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<domain>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Значение сливается по блокам <domain> от общего к частному: побеждает наиболее подходящий блок, а не последний по файлу. Блок <domain> можно вложить в <virtual-mta> — так и задают разные порты разным потокам. Перекрывается портами из smtp-hosts. Подхватывается по pmta reload; на открытые соединения не влияет.
Как проверить на узле
Действующее значение печатает команда настроек очереди; куда узел стучится на самом деле — видно по соединениям:
pmta show settings example.com/vmta1 | grep -i default-smtp-port
ss -tn state established '( dport = :9001 )' | head
Пустой вывод второй команды при непустой очереди означает, что до порта не доходит: либо его никто не слушает, либо мешает сеть. Хаб порт назначения не задаёт.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Настроить темп под провайдера