| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Reviewed: no -->
- <sect1 id="zend.mail.encoding">
- <title>Encoding</title>
- <para>
- Text and <acronym>HTML</acronym> message bodies are encoded with the quotedprintable
- mechanism by default. Message headers are also encoded with the quotedprintable mechanism if
- you do not specify base64 in <methodname>setHeaderEncoding()</methodname>. If you use
- language that is not Roman letters-based, the base64 would be more suitable. All other
- attachments are encoded via base64 if no other encoding is given in the
- <methodname>addAttachment()</methodname> call or assigned to the <acronym>MIME</acronym>
- part object later. 7Bit and 8Bit encoding currently only pass on the binary content data.
- </para>
- <para>
- Header Encoding, especially the encoding of the subject, is a tricky topic.
- <classname>Zend_Mime</classname> currently implements its own algorithm to encode quoted
- printable headers according to RFC-2045. This due to the problems of
- <methodname>iconv_mime_encode()</methodname> and
- <methodname>mb_encode_mimeheader()</methodname> with regards to certain
- charsets. This algorithm only breaks the header at spaces, which might lead to headers that
- far exceed the suggested length of 76 chars. For this cases it is suggested to switch to
- BASE64 header encoding same as the following example describes:
- </para>
- <programlisting language="php"><![CDATA[
- // By default Zend_Mime::ENCODING_QUOTEDPRINTABLE
- $mail = new Zend_Mail('KOI8-R');
- // Reset to Base64 Encoding because Russian expressed in KOI8-R is
- // different from Roman letters-based languages greatly.
- $mail->setHeaderEncoding(Zend_Mime::ENCODING_BASE64);
- ]]></programlisting>
- <para>
- <classname>Zend_Mail_Transport_Smtp</classname> encodes lines starting with one dot or two
- dots so that the mail does not violate the SMTP protocol.
- </para>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|