<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 16033 -->
<!-- Reviewed: no -->
<sect1 id="zend.mail.encoding">
    <title>Encodage</title>

    <para>
        Par défaut, le corps des messages textes et HTML est encodé via le mécanisme
        "quoted-printable". Les en-têtes du message sont aussi encodés avec le mécanisme
        "quoted-printable" si vous ne spécifiez pas base64 avec
        <code>setHeaderEncoding()</code>.Tous les fichiers joints sont encodés via base64 si aucun
        autre encodage n'est spécifié lors de l'appel à <code>addAttachment()</code> ou assigné plus
        tard à la partie MIME de l'objet. Les encodages 7Bit et 8Bit ne se font pour l'instant que
        sur les données binaires.
    </para>

     <para>
        L'encodage des en-têtes, spécialement l'encodage du sujet, est toujours délicat.
        <classname>Zend_Mime</classname> implémente actuellement son propre algorithme pour encoder
        les en-têtes "quoted-printable" suivant la <acronym>RFC</acronym>-2045. Ceci est du à un
        problème des fonctions <code>iconv_mime_encode</code> et <code>mb_encode_mimeheader</code>
        avec certaines tables de caractères. Cet algorithme ne coupe les en-têtes qu'au niveau des
        espaces, ce qui peut entraîner des problèmes quand la longueur excède la longueur de 76
        caractères. Dans ce cas, il est suggéré de basculer en encodage BASE64 pour les en-têtes
        comme décrit dans les exemples suivants&#160;:
    </para>

    <programlisting language="php"><![CDATA[
// Par défaut Zend_Mime::ENCODING_QUOTEDPRINTABLE
$mail = new Zend_Mail('UTF-8');

// Bascule en encodage Base64
$mail->setHeaderEncoding(Zend_Mime::ENCODING_BASE64);
]]></programlisting>

    <para>
        <classname>Zend_Mail_Transport_Smtp</classname> encode les lignes commençant par un ou
        deux points, ainsi l'émail ne viole pas le protocole SMTP.
    </para>
</sect1>