dkim-add-body-limit

<domain>

Подписывать ли только начало тела, разрешив дописывать вниз
в конфигурации это строкаdkim-add-body-limit falseвнутри блока <domain>
Разрешить дописывать вниз ценой защиты

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

Зачем это включают. Шлюзы, антивирусы и корпоративные узлы добавляют внизу свои строки — «проверено», подпись компании, предупреждение о внешнем отправителе. С обычной подписью такие письма приходят с провалом проверки.

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

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

Не включайте. Это единственная строка семьи подписи, которая ослабляет саму подпись.

Если шлюз получателя дописывает. Правильный ответ — договориться с ним или смириться с провалом проверки у этого получателя, а не открывать письмо для дописывания всем.

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

Оценка «это дыра, а не удобство» — наша. Из руководства здесь умолчание, механика с длиной подписанной части и прямое указание, что дальше содержимое можно добавлять, не ломая подпись.
Пример в конфигурации
# ВКЛЮЧАТЬ НЕ СЛЕДУЕТ: подпись перестаёт отвечать за конец письма
<domain corp.example.com>
    dkim-add-body-limit true</domain>
Пример показан ради полноты: единственный случай, где это обсуждают, — корпоративный получатель, чей шлюз дописывает строку внизу и с которым нельзя договориться.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Включают, чтобы починить проверку у одного получателя

наш опыт

Чем чреватоОткрытым для дописывания становится всё, что уходит по этому блоку. Подделать письмо от вашего имени с проходящей проверкой может кто угодно на пути.
Как заметитьВ подписи писем появилось поле l=.
Как правильноУбрать строку; с шлюзом, который дописывает, договариваться отдельно.

Считают, что предел защищает начало письма

наш опыт

Чем чреватоФормально да, но получатель видит письмо целиком и не отличает подписанную часть от дописанной. Защита начала не мешает обману.
Как заметитьРассуждение «зато шапка подписана» в обосновании настройки.
Как правильноПодписывать тело целиком — это умолчание.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
dkim-add-body-limit <boolean>
Значения
yes или no; true и false принимаются наравне с ними
Умолчание
false § 3.3.10.19
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<domain>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Значение сливается по блокам <domain> от общего к частному: побеждает наиболее подходящий блок, а не последний по файлу. В блоке со звёздочкой оно открывает для дописывания всю рассылку. Подхватывается по pmta reload; на письма в очереди действует со следующей попытки.
⇄

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

1 связь

Как проверить на узле
Значение печатает команда настроек очереди; включено ли — видно по наличию поля длины в самой подписи:
pmta show settings corp.example.com/vmta1 | grep -i add-body-limit
grep -i 'DKIM-Signature' /var/log/pmta/pmta.log | tail -3
Поле l= в подписи и есть предел длины: его наличие означает, что конец письма подписью не защищён. Хаб этой строки не пишет.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Подпись и аутентификация писем