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