2
0

Zend_Mail-Encoding.xml 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 17407 -->
  4. <sect1 id="zend.mail.encoding">
  5. <title>エンコーディング</title>
  6. <para>
  7. テキストおよび HTML メッセージの本文は、デフォルトでは
  8. quotedprintable 方式でエンコードされます。
  9. メッセージヘッダーもbase64を <methodname>setHeaderEncoding()</methodname> で指定しなければ
  10. quotedprintable 方式でエンコードされます。
  11. その他の添付ファイルは、デフォルトでは
  12. base64 でエンコードされますが、<methodname>addAttachment()</methodname> のコール時に変更したり
  13. <acronym>MIME</acronym> パートオブジェクトに後から代入して変更することもできます。
  14. 7Bit エンコーディングおよび 8Bit エンコーディングは、
  15. 現在はバイナリデータにのみ適用可能です。
  16. </para>
  17. <para>
  18. ヘッダ、特に subject のエンコーディングは、油断のならない話題です。
  19. <classname>Zend_Mime</classname> は現在、quoted printable ヘッダを
  20. RFC-2045 にもとづいてエンコードするアルゴリズムを自前で実装しています。
  21. <code>iconv_mime_encode</code> および <code>mb_encode_mimeheader</code>
  22. には、特定の文字セットにおける問題があるからです。
  23. このアルゴリズムではヘッダを空白文字でのみ区切るので、
  24. 推奨される長さである 76 文字を超えるヘッダができてしまう可能性があります。
  25. そんな場合は、次の例のようにしてヘッダのエンコード方式を
  26. BASE64 に変更しましょう。
  27. </para>
  28. <programlisting language="php"><![CDATA[
  29. // デフォルトは Zend_Mime::ENCODING_QUOTEDPRINTABLE です
  30. $mail = new Zend_Mail('UTF-8');
  31. // Base64 エンコーディングに変更します
  32. $mail->setHeaderEncoding(Zend_Mime::ENCODING_BASE64);
  33. ]]></programlisting>
  34. <para>
  35. <classname>Zend_Mail_Transport_Smtp</classname> は、行頭がドット 1 文字あるいはドット
  36. 2 文字の場合にその行をエンコードします。これにより、
  37. SMTP プロトコルに違反するメールを作成しないようにします。
  38. </para>
  39. </sect1>
  40. <!--
  41. vim:se ts=4 sw=4 et:
  42. -->