smtp-service

<source>критичноХаб задаёт сам

Предлагать ли SMTP соединениям от этого источника
в конфигурации это строкаsmtp-service trueвнутри блока <source>
Открыта ли подача для этого источника

Предлагается ли SMTP тем, кто подключается с адресов этого источника. Выключение закрывает подачу точечно, не трогая остальных: приёмник продолжает работать, но конкретной сети отвечает отказом.

Отказ вежливый и сразу. Вместо обычного приветствия 220 закрытый источник получает 521 <имя-узла> does not accept mail from you — и закрывает соединение. Клиент узнаёт причину немедленно, а не по таймауту.

Умолчание — «открыто». Поэтому закрытая подача строится осознанно: руководство показывает ровно один приём — запретить в общем блоке <source 0/0> и разрешить в блоках подающих платформ. Одни лишь разрешающие блоки не закрывают ничего.

Это самый быстрый способ отсечь подающего. Перезапуск не нужен, письма в очереди не трогаются — меняется только то, принимает ли узел новые.

Главная ловушка. Источник выбирается слиянием всех подходящих блоков, и узкая запись перекрывает широкую. Закрыв подачу в общем блоке и забыв про именованный источник с более точным адресом, вы не закроете ничего.
Что делает Хаб. Пишет smtp-service yes и в общем блоке <source 0/0>, и в каждом источнике подачи. То есть приветствие узел даёт любому, кто до него дотянулся: закрытой по умолчанию подачи у нас нет — её сдерживают другие строки, разрешение на пересылку и требование логина. Отдельной операции «остановить подачу» в «Управлении» тоже нет: там останавливают службу целиком, а это рвёт и доставку.
Рекомендуемые значения

Закрывать — в общем блоке, открывать — в частных. Обратный порядок не работает: умолчание «открыто», и всё, что не названо, остаётся открытым.

Узел, который принимает отказы и жалобы, закрывать нельзя. Отчёты приходят от почтовых служб получателей, а их адреса заранее не перечислить. Закрытый общий блок отрежет и подачу, и весь приём с MX-стороны разом.

Разделять узлы, а не источники. Если приём отчётов и подача кампаний живут на одном узле, эта директива перестаёт быть точным инструментом — закрыть можно только то, что не нужно обоим.

Всё из руководства: умолчание, текст отказа и приём «запретить в общем блоке, разрешить в частных».
Пример в конфигурации
# подающая платформа — открыто и с правом пересылки
<source 10.0.0.1>
    smtp-service yes
    always-allow-relaying yes
</source>

# всем остальным — закрыто
<source 0/0>
    smtp-service no</source>
Оба блока из руководства вместе с его собственным комментарием об источниках подачи. Порядок строк роли не играет — побеждает точность совпадения.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Добавляют разрешающие блоки, не закрыв общий

§ 3.3.7.63

Чем чреватоУмолчание — «открыто», и перечисление своих ничего не запрещает чужим. Ограничение существует только в голове настраивавшего.
Как заметитьУзел приветствует 220 любого, кто подключился, хотя «настроены только свои платформы».
Как правильноНаписать smtp-service no в блоке <source 0/0> и открывать точечно.

Закрывают общий блок на узле, который принимает отчёты

наш опыт

Чем чреватоОтчёты приходят с почтовых служб получателей, а не с ваших адресов. Закрытый общий блок отвечает им 521, и отчёт теряется навсегда — повторять его никто не обязан.
Как заметитьПропадают жалобы и асинхронные отказы; в учёте нет записей приёма, хотя MX-запись на месте и порт открыт.
Как правильноНа узле, совмещающем подачу и приём, эту директиву не закрывать; защиту строить требованием логина и правами на пересылку.

Считают, что закрытая подача останавливает отправку

§ 3.3.7.63

Чем чреватоДиректива решает только, принимает ли узел новые письма. Всё, что уже в очереди, продолжает доставляться по расписанию.
Как заметитьПодачу закрыли, чтобы «остановить рассылку», а письма продолжают уходить.
Как правильноОстанавливать доставку операциями очереди — пауза или щадящий режим, а не закрытием подачи.

Проверяют с рабочего места, а не с адреса платформы

§ 3.3.7

Чем чреватоИсточник выбирается по адресу подключающегося, и ответ узла зависит от того, откуда пришли. Проверка не с того адреса ничего не говорит о платформе.
Как заметитьПроверка показывает 521, хотя платформа подаёт без проблем — или наоборот.
Как правильноПроверять с самой платформы либо через приёмник, к которому она подключается.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
smtp-service <boolean>
Значения
yes | no | true | false; умолчание true, то есть подача открыта
Умолчание
true § 3.3.7.63
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<source>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Блоки <source> сливаются от общего к точному, узкий перекрывает широкий. Приёмник может назначить источник в обход этого правила — параметром source= у строки smtp-listener: тогда действует названный блок, а не тот, что подходит по адресу. Подхватывается по pmta reload.
Как проверить на узле
Проверяется приветствием: подключиться к приёмнику с той стороны, которую проверяете, и посмотреть первую строку ответа:
printf 'QUIT\r\n' | nc -w5 узел 2525
220 … — подача этому адресу открыта, 521 … does not accept mail from you — закрыта. Проверять надо именно с того адреса, о котором речь: источник выбирается по адресу подключающегося.
В Хабе
Управляется
Инфраструктура → Параметры узла
Значение
Хаб подбирает сам — темп, стадия прогрева, метрики
Цена ошибки
опасно: последствия переживут откат
Сценарии
Безопасность узла · Подключить платформу отправки
Важность
критично