<?xml version="1.0" encoding="UTF-8"?>
<!-- Reviewed: no -->
<sect1 id="zend.mail.encoding">
    <title>Кодировка</title>
    <para>
        Тела сообщений в текстовом и HTML форматах по умолчанию кодируются
        по алгоритму quoted-printable, если только вы не указали
        base64 через метод <methodname>setHeaderEncoding()</methodname>.
        Все другие вложения кодируются
        по алгоритму base64, если только не была указана другая кодировка при
        вызове метода <methodname>addAttachment()</methodname> и она не была
        установлена позднее для объекта части <acronym>MIME</acronym>.
        Кодировки 7Bit и 8Bit в настоящее время используются только для
        бинарных данных.
    </para>

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

    <programlisting language="php"><![CDATA[
// По умолчанию используется Zend_Mime::ENCODING_QUOTEDPRINTABLE
$mail = new Zend_Mail('UTF-8');

// Переключение на base64
$mail->setHeaderEncoding(Zend_Mime::ENCODING_BASE64);
]]></programlisting>

    <para>
        <classname>Zend_Mail_Transport_Smtp</classname> кодирует строки,
        начинающиеся с одной или двух точек, поэтому сообщение не будет нарушать
        протокол SMTP.
    </para>
</sect1>
<!--
vim:se ts=4 sw=4 et:
-->
