<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- 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
        <methodname>setHeaderEncoding()</methodname>. Si vous utilisez une langue qui n'est pas
        sur des lettres de type romaines, la base64 sera plus convenable. Tous les fichiers joints
        sont encodés via base64 si aucun autre encodage n'est spécifié lors de l'appel à
        <methodname>addAttachment()</methodname> ou assigné plus tard à la partie
        <acronym>MIME</acronym> 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 RFC-2045. Ceci est du à un
        problème des fonctions <methodname>iconv_mime_encode()</methodname> et
        <methodname>mb_encode_mimeheader()</methodname>
        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('KOI8-R');

// Bascule en encodage Base64 parce que le Russe exprimé en KOI8-R est
// considérablement différent des langues basées sur des lettres romaines
$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 le courriel ne viole pas le protocole SMTP.
    </para>
</sect1>