формирование заголовков E-mail для всех почтовых клиентов
заголовок(как и все письмо) создается в соответствии с RFC 2047 - MIME в виде encoded-word (см. упомянутый RFC)
т.е. в коде это так:
Код:
$subjectEncoded = "=?utf-8?B?".base64_encode($subjectInput)."?=";
в теле письмо состоит из нескольких частей и имеет в себе:
- часть Content-Type:multipart/alternative (text/plain)
- часть Content-Type:multipart/releated (text/html)
- части с вложениями в releated (Content-Type: image/*; Content-Disposition:inline)
- просто вложения (Content-Type: application/*; Content-Disposition:attachment)
в таком виде оно исправно дружит со всеми клиентами кроме Gmail.
В нем почему заголовок не декодируется из MIME а показывается как есть т.е. вот так:
Код:
=?utf-8?B?PT91dGYtOD9CPzBLTFF0ZEdCMFlMUXZ0Q3kwTDdRdFNEUmdkQyswTDdRc2RHSjBMWFF2ZEM0MExVPT89?=
Код:
$subjectEncoded = $subjectInput;
с остальными клиентами (Thunderbird, Yandex(Web), Outlook 2007) все ок в обоих случаях.
в ходе тестов выяснил что тот же код(валидный из первого блока который соответствует RFC MIME) нормально работает если отправлять обычное HTML-письмо (не multipart без вложений)
Как сделать так что бы заголовки корректно отображались и там и там?