|
|
@@ -1,19 +1,40 @@
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
<!-- Reviewed: no -->
|
|
|
-<!-- EN-Revision: 15103 -->
|
|
|
+<!-- EN-Revision: 16033 -->
|
|
|
<sect1 id="zend.mail.encoding">
|
|
|
<title>エンコーディング</title>
|
|
|
<para>
|
|
|
テキストおよび HTML メッセージの本文は、デフォルトでは
|
|
|
- quotedprintable 方式でエンコードされます。
|
|
|
+ quotedprintable 方式でエンコードされます。
|
|
|
メッセージヘッダーもbase64を <code>setHeaderEncoding()</code> で指定しなければ
|
|
|
- quotedprintable 方式でエンコードされます。
|
|
|
+ quotedprintable 方式でエンコードされます。
|
|
|
その他の添付ファイルは、デフォルトでは
|
|
|
base64 でエンコードされますが、<code>addAttachment()</code> のコール時に変更したり
|
|
|
MIME パートオブジェクトに後から代入して変更することもできます。
|
|
|
7Bit エンコーディングおよび 8Bit エンコーディングは、
|
|
|
現在はバイナリデータにのみ適用可能です。
|
|
|
</para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ ヘッダ、特に subject のエンコーディングは、油断のならない話題です。
|
|
|
+ Zend_Mime は現在、quoted printable ヘッダを
|
|
|
+ RFC-2045 にもとづいてエンコードするアルゴリズムを自前で実装しています。
|
|
|
+ <code>iconv_mime_encode</code> および <code>mb_encode_mimeheader</code>
|
|
|
+ には、特定の文字セットにおける問題があるからです。
|
|
|
+ このアルゴリズムではヘッダを空白文字でのみ区切るので、
|
|
|
+ 推奨される長さである 76 文字を超えるヘッダができてしまう可能性があります。
|
|
|
+ そんな場合は、次の例のようにしてヘッダのエンコード方式を
|
|
|
+ BASE64 に変更しましょう。
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
+// デフォルトは Zend_Mime::ENCODING_QUOTEDPRINTABLE です
|
|
|
+$mail = new Zend_Mail('UTF-8');
|
|
|
+
|
|
|
+// Base64 エンコーディングに変更します
|
|
|
+$mail->setHeaderEncoding(Zend_Mime::ENCODING_BASE64);
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
<para>
|
|
|
<classname>Zend_Mail_Transport_Smtp</classname> は、行頭がドット 1 文字あるいはドット
|
|
|
2 文字の場合にその行をエンコードします。これにより、
|