PHP PHPMailer DKIM подпись и кодировка. Не проходит проверка подписи, в чём может быть причина?
Письма отправляются, всё приходит. PHPMailer через sendmail. PHPMailer ради подписи только.
Проблема собственно в подписи DKIM
Если в теле письма, в Body хоть один кириллический символ, то подпись проверку не проходит.
Если просто латинские буквы, то всё ок, подпись хорошая.
Никто с данной проблемой не сталкивался?
Понятно, что это скорее всего из-за кодировки на этапах создания подписи и после во время её проверки. Но это PHPMailer c глюком или я какие то вводные настройки неправильно установил?
А вы вкурсе как отправляются кирилические символы по RFC ?
Все примеры в интернете отправки php на английском, и там такой проблемы нет.
Однако если вы вернетесь к RFC 2045
В общем век живи, век учись https://habr.com/ru/post/17531/
Забыл тогда отписаться. В общем кодировал тело письма в base64. Ну и соответственно простановкой заголовка Content-Transfer-Encoding: base64. Так и решилась проблема.
Ну и если письмо составное, типа multipart/alternative, то пришлось каждый блок, разделённый boundary, кодировать в base64 и проставлять для каждого блока
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: base64
И, если кому будет полезно, в моём случае, в работе с Битрикс, там тело письма приходит как есть, то есть с разделением на текстовую и html версию, если стоит настройка, по умолчанию она по-моему стоит. Чтобы не париться и не парсить приходящее тело письма и далее декодировть отдельные части письма, убрал в настройках главного модуля галку "Генерировать текстовую версию для html-писем", а текстовую версию уже сам добавлял.