require-starttls

<domain>Хаб задаёт сам

Отказываться ли от доставки, если шифрование не сложилось
в конфигурации это строкаrequire-starttls falseвнутри блока <domain>
То же имя ещё 1:<domain><source>— часть из них другие настройки, часть та же самая
Шифрование обязательно — или письмо не уйдёт

Строка имеет смысл только при включённом use-starttls. Она отвечает на вопрос, что делать, когда шифрование не сложилось: приёмник его не предложил или согласование сорвалось.

Умолчание — false, то есть отправить открытым текстом. Это разумное умолчание для мира в целом и неверное для крупных приёмников: у них STARTTLS есть всегда, и его отсутствие означает не «старый узел», а что-то не то с соединением.

true — это решение о недоставке. Узел обрывает соединение, письмо остаётся в очереди и уходит по обычному расписанию повторов. Если у приёмника шифрования нет вовсе, письмо в итоге отобьётся по сроку.

Главная ловушка — поставить true в <domain *>. Это превращает любого приёмника без STARTTLS в неотправляемого. Мелкие корпоративные почтовики без шифрования встречаются до сих пор, и письма им будут копиться в очереди, пока не отобьются по сроку.
Что делает Хаб. Пишет yes в блоках четырнадцати крупных приёмников — у Mail.ru, Яндекса, Gmail и остальных: у крупных STARTTLS есть всегда, и незашифрованная доставка туда означает неисправность, а не совместимость. В общем <domain *> — no: шифрование по возможности (use-starttls), а кто его требует, объявляет это сам через MTA-STS. До 15.09.2026 требование стояло и в общем блоке, и приёмник без шифрования письма от узла не получал.
Рекомендуемые значения

Разница между значениями — это разница между двумя видами потерь:

Значение Что теряете Кому
no (умолчание) конфиденциальность части писем всем, кроме крупных приёмников
yes доставку тем, у кого нет шифрования крупным приёмникам, где STARTTLS есть всегда

Правило простое: обязательность включают там, где отсутствие шифрования — признак неисправности, а не особенности приёмника.

Умолчание false и обрыв соединения вместо отправки — из руководства (§ 3.3.10.108.2). Правило «только крупным приёмникам» — наше, из шаблона политик.
Пример в конфигурации
# обязательное шифрование — только там, где оно точно есть
<domain $mailru>
    use-starttls yes
    require-starttls yes</domain>
Строка стоит в блоке конкретного приёмника, а не в <domain *>. Письмо, которое не удалось зашифровать, останется в очереди и будет повторяться по обычному расписанию.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Ставят обязательность в общий блок получателей

наш опыт

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

Ставят обязательность при выключенном шифровании

§ 3.3.10.108.2

Чем чреватоСтрока имеет смысл только вместе с use-starttls. При выключенном шифровании она не делает ничего — и создаёт впечатление, что защита настроена.
Как заметитьВ конфигурации требование есть, в учёте у всех писем пусто в поле версии протокола.
Как правильноПроверить, не выключен ли use-starttls в более точном блоке получателя или на уровне адреса отправки.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
require-starttls <boolean>
Значения
yes | no | true | false
Умолчание
false § 3.3.10.108.2
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<domain>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива живёт в <domain> и сливается по обычному правилу блоков получателей: побеждает самое точное совпадение по имени приёмника. Отсюда и приём: общий блок оставляют без неё, а обязательность включают точечно. Те же три уровня действуют по адресу отправки — узел, <virtual-mta-pool>, <virtual-mta>.
Как проверить на узле
Последствия видны в очереди: письма, которые не удалось зашифровать, остаются в ней:
pmta show queues | head -20
Растущая очередь к одному приёмнику вместе с пустым полем версии протокола в учёте — это и есть сработавшая обязательность. Причина срыва согласования пишется при включённом log-tls.
В Хабе
Значение
Хаб подбирает сам — темп, стадия прогрева, метрики
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Шифрование соединений