# Zend_Mime_Message

## 導入

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

## インスタンスの作成

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

## 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 メッセージとなります。

## バウンダリの扱い

`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` の内容を文字列にレンダリングします。

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

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

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