Шифровать там, где приёмник этого требует

И не отказываться от письма там, где не требует

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

Из чего складывается:

  • dane — принуждение для приёмников, публикующих подписанные записи с отпечатком сертификата;
  • mta-sts — принуждение для приёмников, публикующих политику по HTTPS;
  • require-starttls — грубый вариант: не понижать до открытого текста никогда.

Области у составляющих разные. Все три включаются на получателя. Для DANE нужен резолвер с поддержкой DNSSEC — это условие узла, и без него записям DANE доверять нельзя.

Как они взаимодействуют. Три части выстроены по тому, сколько требуют от приёмника. Отказ от понижения не требует ничего и не доставит почту никому, кто шифрования не предлагает. DANE и MTA-STS действуют только у тех, кто сам опубликовал требования, и при невыполненных условиях не отправляют письмо открытым текстом. Доверяют они разному — подписанному DNS и политике по HTTPS, — поэтому вместе покрывают больше приёмников. Чего схема не даёт — числа писем, ушедших открытым текстом туда, где ничего не требовали.

Главная ловушка — require-starttls для всех получателей. Строка в общем блоке не доставит почту ни одному приёмнику без STARTTLS — а таких по-прежнему много; принуждение по желанию самого приёмника дают DANE и MTA-STS.
Что делает Хаб. Применяет две составляющие из трёх. use-mta-sts yes стоит во всех пятнадцати блоках шаблона политик, require-starttls yes — только у четырнадцати крупных приёмников: в общем <domain *> обязательности нет (до 15.09.2026 была). DANE не включён. Выходит по схеме: грубый отказ от понижения — там, где шифрование есть всегда, а остальным — проверка по их собственной политике.
Рекомендуемые значения

Три способа и что им нужно:

Способ Строка Что требуется от приёмника Условие на узле
DANE use-dane подписанные записи с отпечатком резолвер с DNSSEC
MTA-STS use-mta-sts политика по HTTPS —
без понижения require-starttls ничего —
Механизмы, их условия и строки — из руководства (§ 10.5, § 10.6, § 3.3.10.108). Сама схема — наша гипотеза.
Пример в конфигурации
<domain *>
    use-mta-sts yes
    use-dane yes</domain>
<domain bank.example>
    require-starttls yes
</domain>
Принуждение по желанию приёмника — для всех, грубое — только для получателя, которому открытый текст недопустим.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Как проверить на узле
Проверить, какие механизмы действуют для получателя:
pmta show settings gmail.com/vmta1 | grep -E '^(use-dane|use-mta-sts|require-starttls) '
require-starttls yes у произвольного получателя — признак грубого варианта для всех.