Zend_Mail-Encoding.xml 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <sect1 id="zend.mail.encoding">
  4. <title>Кодировка</title>
  5. <para>
  6. Тела сообщений в текстовом и HTML форматах по умолчанию кодируются
  7. по алгоритму quoted-printable, если только вы не указали
  8. base64 через метод <methodname>setHeaderEncoding()</methodname>.
  9. Все другие вложения кодируются
  10. по алгоритму base64, если только не была указана другая кодировка при
  11. вызове метода <methodname>addAttachment()</methodname> и она не была
  12. установлена позднее для объекта части <acronym>MIME</acronym>.
  13. Кодировки 7Bit и 8Bit в настоящее время используются только для
  14. бинарных данных.
  15. </para>
  16. <para>
  17. Кодирование заголовков, особенно темы (subject) сообщения - непростой
  18. вопрос. <classname>Zend_Mime</classname> в настоящее время реализует
  19. собственный алгоритм для кодирования quoted-printable сообщений в
  20. соответствии с RFC-2045. Это вызвано тем, что
  21. <code>iconv_mime_encode</code> и <code>mb_encode_mimeheader</code>
  22. испытывают проблемы с кодированием определенных символов.
  23. Этот алгоритм только разбивает заголовки пробелами, это приводит к
  24. тому, что заголовки могут значительно превышать предлагаемую длину в
  25. 76 символов. По этой причине рекомендуется переключаться на кодирование
  26. заголовков по алгоритму base64, как показано в следующем примере:
  27. </para>
  28. <programlisting language="php"><![CDATA[
  29. // По умолчанию используется Zend_Mime::ENCODING_QUOTEDPRINTABLE
  30. $mail = new Zend_Mail('UTF-8');
  31. // Переключение на base64
  32. $mail->setHeaderEncoding(Zend_Mime::ENCODING_BASE64);
  33. ]]></programlisting>
  34. <para>
  35. <classname>Zend_Mail_Transport_Smtp</classname> кодирует строки,
  36. начинающиеся с одной или двух точек, поэтому сообщение не будет нарушать
  37. протокол SMTP.
  38. </para>
  39. </sect1>
  40. <!--
  41. vim:se ts=4 sw=4 et:
  42. -->