DKIM не проходит проверку

Если подпись есть, но DKIM=fail, проверяем selector, публичный ключ и то, изменяется ли письмо после подписания.

ПочтаПроверка по симптомам

Проверьте по порядку

Фиксируйте результат каждого шага. Это важнее, чем быстро попробовать несколько исправлений одновременно.

  1. 1
    Из заголовка DKIM-Signature возьмите d= и s= — домен и selector.
  2. 2
    Проверьте TXT по s._domainkey.d, а не предполагаемый selector.
  3. 3
    Сверьте публичный ключ с приватным ключом реально используемого MTA.
  4. 4
    Если DNS правильный, проверьте, не меняет ли промежуточный шлюз тело/заголовки после DKIM-подписи.

Как читать результат

Неверный selector

Признак: DNS проверяется не по тому имени.

Что делать: Используйте selector из реальной DKIM-Signature.

Ключ не совпадает

Признак: DNS содержит старый p=.

Что делать: Обновите TXT или конфигурацию signing key.

Письмо изменено после подписи

Признак: DKIM ломается только через определённый relay.

Что делать: Подписывайте после всех преобразований или исправьте relay.

Не маскируйте симптом

Ошибка полезна, пока она воспроизводится. Сначала определите источник и только потом очищайте кэш, перезапускайте сервисы или меняйте DNS.