12.2. Zend_Mime_Message

12.2.1. 導入

Zend_Mime_Message は MIME 準拠のメッセージを表すものであり、 ひとつあるいは複数の部分に分かれたメッセージ (Zend_Mime_Part オブジェクトで表されます) を保持することができます。Zend_Mime_Message では、Zend_Mime_Part を使用して MIME 準拠のマルチパートメッセージを作成します。 エンコーディングやバウンダリの処理も透過的に行われます。 与えられた文字列から Zend_Mime_Message オブジェクトを再構成することも可能です (実験段階です)。Zend_Mail で使用しています。

12.2.2. インスタンスの作成

Zend_Mime_Message には明示的なコンストラクタはありません。

12.2.3. MIME パートの追加

Zend_Mime_Part オブジェクトを Zend_Mime_Message オブジェクトに追加するには、 ->addPart($part) をコールします。

->getParts() メソッドは、 Zend_Mime_Message 内のすべての Zend_Mime_Part オブジェクトを配列で返します。配列に保存されているのは Zend_Mime_Part オブジェクトへの参照なので、内容を変更することが可能です。 配列に新たなパートを追加したり並び順を変更したりした場合は、 ->setParts($partsArray) をコールして配列を Zend_Mime_Part オブジェクトに書き戻さなければなりません。

関数 ->isMultiPart() は、Zend_Mime_Message オブジェクトに複数のパートが登録されている場合に true を返します。 この場合、実際の出力はマルチパート Mime メッセージとなります。

12.2.4. バウンダリの扱い

Zend_Mime_Message は、バウンダリを生成するために通常は Zend_Mime オブジェクトを使用します。 バウンダリを独自に定義する必要があったり Zend_Mime_Message が使用する Zend_Mime オブジェクトの振る舞いを変更したりしたい場合は、 Zend_Mime オブジェクトを自分で作成して Zend_Mime_Message に登録します。通常は、この必要はありません。 この Zend_Mime_Message で使用する Zend_Mime インスタンスを設定するには、->setMime(Zend_Mime $mime) を使用します。

->getMime()Zend_Mime のインスタンスを返します。 これは、generateMessage() がコールされた際にメッセージをレンダリングする際に使用されます。

->generateMessage() は、 Zend_Mime_Message の内容を文字列にレンダリングします。

12.2.5. 文字列をパースすることによる Zend_Mime_Message オブジェクトの作成 (実験段階)

MIME に準拠したメッセージを含む文字列をもとにして、 Zend_Mime_Message オブジェクトを構築することができます。 Zend_Mime_Message には、このような文字列をパースして Zend_Mime_Message オブジェクトを返す 静的なファクトリメソッドが用意されています。

Zend_Mime_Message::createFromMessage($str, $boundary) は、渡された文字列をデコードして Zend_Mime_Message オブジェクトを返します。->getParts() を使用すると、その中身を確認することができます。