| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 17407 -->
- <!-- 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>.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 <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 :
- </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>
|