Главная / Zend Manual Core
Наборы символов

Кодировка

Тела сообщений в текстовом и HTML форматах по умолчанию кодируются по алгоритму quoted-printable, если только вы не указали base64 через метод setHeaderEncoding(). Все другие вложения кодируются по алгоритму base64, если только не была указана другая кодировка при вызове метода addAttachment() и она не была установлена позднее для объекта части MIME. Кодировки 7Bit и 8Bit в настоящее время используются только для бинарных данных.

Кодирование заголовков, особенно темы (subject) сообщения - непростой вопрос. Zend_Mime в настоящее время реализует собственный алгоритм для кодирования quoted-printable сообщений в соответствии с RFC-2045. Это вызвано тем, что iconv_mime_encode и mb_encode_mimeheader испытывают проблемы с кодированием определенных символов. Этот алгоритм только разбивает заголовки пробелами, это приводит к тому, что заголовки могут значительно превышать предлагаемую длину в 76 символов. По этой причине рекомендуется переключаться на кодирование заголовков по алгоритму base64, как показано в следующем примере:

  1. // По умолчанию используется Zend_Mime::ENCODING_QUOTEDPRINTABLE
  2. $mail = new Zend_Mail('UTF-8');
  3.  
  4. // Переключение на base64
  5. $mail->setHeaderEncoding(Zend_Mime::ENCODING_BASE64);

Zend_Mail_Transport_Smtp кодирует строки, начинающиеся с одной или двух точек, поэтому сообщение не будет нарушать протокол SMTP.


Наборы символов