Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

формирование заголовков E-mail для всех почтовых клиентов

83K
08 августа 2012 года
Deroy
3 / / 15.06.2012
Суть вопроса: есть класс на PHP для создания писем с вложениями (письмо MIME) но никак не удается подружить заголовок subject (тема письма) c почтовыми клиентами (точнее удается но не со всеми сразу).

заголовок(как и все письмо) создается в соответствии с 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?=
с Gmail дружит только если убрать MIME кодирование заголовка и представить его как есть т.е.
 
Код:
$subjectEncoded = $subjectInput;
но тогда в The Bat в списке писем заголовок отображается кракозябрами (типа неверная кодировка, с латиницей все ок).
с остальными клиентами (Thunderbird, Yandex(Web), Outlook 2007) все ок в обоих случаях.

в ходе тестов выяснил что тот же код(валидный из первого блока который соответствует RFC MIME) нормально работает если отправлять обычное HTML-письмо (не multipart без вложений)

Как сделать так что бы заголовки корректно отображались и там и там?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог