dkim-sign

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

Подписывать ли письма этому получателю
в конфигурации это строкаdkim-sign falseвнутри блока <domain>
Включение подписи — у получателя, ключ — по письму

Строка решает, подписывать ли письма, идущие этому получателю. Сам ключ она не называет: он выбирается по домену отправки из заголовков письма среди объявлений domain-key.

Без ключей строка не делает ничего. Руководство говорит прямо: ключи должны быть настроены, чтобы включение подействовало. Ни ошибки, ни предупреждения при их отсутствии не будет — письмо просто уйдёт неподписанным.

Третье значение помимо да и нет. if-x-dkim-options-present включает подпись только для тех писем, которые несут заголовок X-DKIM-Options. Так подписывают выборочно — по решению подающей стороны, а не по получателю.

Главная ловушка — включение без ключа проходит молча. Строка применяется, в выводе настроек стоит yes, а письма уходят без подписи, потому что подходящего объявления domain-key не нашлось. Единственный способ заметить — посмотреть заголовки отправленного письма или отчёты получателей.
Что делает Хаб. Пишет: подпись включена для всех получателей, ключи ведутся на карточке домена в разделе «DNS → Домены и зоны» и раскладываются по узлам. Выборочная подпись по заголовку X-DKIM-Options не используется — подписывается вся почта.
Рекомендуемые значения

Включайте для всех получателей. Неподписанное письмо сегодня выглядит подозрительно у любого крупного приёмника; выборочная подпись смысла не имеет.

Сначала ключ, потом включение. Порядок важен: письма, подписанные ключом, которого нет в DNS, хуже неподписанных.

Третье значение — для чужой подачи. Оно отдаёт решение о подписи подающему приложению; в своей рассылке это лишний способ ошибиться.

Совет включать для всех и порядок «сначала ключ» — наши. Из руководства здесь умолчание, все три значения и требование настроенных ключей.
Пример в конфигурации
# ключ объявлен, запись в DNS опубликована — только теперь включаем
domain-key k1, example.org, /etc/pmta/k1.example.org.pem

<domain *>
    dkim-sign yes</domain>
Порядок строк в файле роли не играет, а порядок действий — играет: запись в DNS должна разойтись до включения подписи.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Включают подпись, не объявив ключ

§ 3.3.10.18

Чем чреватоСтрока применяется без ошибки, письма уходят без подписи. Заметить это по конфигурации нельзя — только по заголовкам писем или по отчётам получателей.
Как заметитьВ настройках dkim-sign yes, в письмах заголовка подписи нет.
Как правильноОбъявить domain-key для домена отправки и проверить, что он подобрался.

Включают подпись до публикации записи в DNS

наш опыт

Чем чреватоПолучатель видит подпись, но не может её проверить: публичной части в DNS ещё нет. Результат проверки — постоянная ошибка, и это хуже, чем неподписанное письмо.
Как заметитьВ отчётах получателей подпись помечена ошибкой.
Как правильноПубликовать запись и ждать её расхождения до включения.

Включают выборочно, по заголовку

наш опыт

Чем чреватоЧасть писем уходит без подписи. Приёмники видят от одного отправителя два разных поведения, и это само по себе повод отнестись к нему настороженнее.
Как заметитьДоля подписанных писем меньше единицы.
Как правильноПодписывать всё; выборочная подпись оправдана только при чужой подаче с собственными ключами.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
dkim-sign <enumeration>
Значения
yes, no либо if-x-dkim-options-present — подписывать только письма с заголовком X-DKIM-Options
Умолчание
false § 3.3.10.18
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<domain>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Значение сливается по блокам <domain> от общего к частному: побеждает наиболее подходящий блок, а не последний по файлу. Блок <domain> можно вложить в <virtual-mta> — тогда подпись включается только для этого потока. Подхватывается по pmta reload; на письма, уже стоящие в очереди, подействует со следующей попытки — подпись ставится при отправке, а не при подаче.
⇄

Связанные директивы

3 связи

Как проверить на узле
Действующее значение печатает команда настроек очереди; подписано ли письмо на самом деле — видно по заголовку в журнале:
pmta show settings gmail.com/vmta1 | grep -i dkim-sign
grep -i 'DKIM-Signature' /var/log/pmta/pmta.log | tail -5
Значение yes при пустом втором выводе означает, что ключ не подобрался: подпись включена, а объявления для домена отправки нет. Хаб подпись включает для всех получателей.
В Хабе
Управляется
DNS → Ключи подписи
Значение
Хаб подбирает сам — темп, стадия прогрева, метрики
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Ротация ключей · Подпись и аутентификация писем
Важность
критично