DKIM — хэш тела не проходит проверку — в письме, отправленном из Discourse

Я создал DKIM-запись на одном из моих хостинг-сайтов (pair.com), используя их автоматизированную систему. Я добавил TXT-запись с хостом и ключом DKIM на свой DNS-сервер DigitalOcean.

Если я отправляю письмо через Thunderbird, проверка DKIM проходит успешно. Однако когда Discourse отправляет письмо, используя те же самые данные сервера и учётной записи, я получаю:

dkim=neutral (body hash did not verify) header.i=@knysnayachtowners.org header.s=pair-202409020848 header.b=UW+zWBx8;

Что я делаю не так?

Подпись DKIM выполняется на отправляющем почтовом сервере, то есть после того, как Discourse передаст письмо SMTP-серверу, который настроен для использования.

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

Если вы точно используете одинаковые данные в Thunderbird и Discourse (перезапустили ли вы контейнер, чтобы убедиться, что он использует данные из app.yml?), я был бы удивлен, если бы письмо подписывалось другим ключом или использовался другой селектор, поэтому я ожидал бы увидеть тот же результат, если бы пара ключей не совпадала.

Возможно, адрес отправителя отличается, и ваш почтовый провайдер подписывает письмо по-разному в зависимости от этого?

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

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

Я провёл серию дополнительных тестов и выяснил, что проблема заключалась в том, что адрес получателя (TO), с которым я тестировал, пересылал почту в Gmail. Если же отправлять письмо напрямую в Gmail, хэш проходит проверку.

Тем не менее, это всё ещё вызывает у меня недоумение: я смотрю на заголовки других писем, отправленных на этот адрес, и хэш DKIM проходит. Почему в этом случае всё иначе?

Gmail не видит DKIM. Google очень строг в этом вопросе. Основная причина в том, что сервер отправки не соответствует тому, что ожидает администратор.