###
4 `BabylMessage`

クラス `BabylMessage`( | [message])

  Babyl 固有の動作をするメッセージ。引数 message は `Message` のコンストラクタと同じ意味を持ちます。

ある種のメッセージラベルは アトリビュート と呼ばれ、規約により特別な意味が 与えられています。アトリビュートは以下の通りです:

ラベル | 説明
--- | ---
unseen | 読んでいないが既に MUA に見つかっている
deleted | 削除予定
filed | 他のファイルまたはメールボックスにコピーされた
answered | 返答済み
forwarded | 転送された
edited | ユーザによって変更された
resent | 再送された

デフォルトでは Rmail は可視ヘッダのみ表示する。`BabylMessage` クラスはしかし、 オリジナルヘッダをより完全だという理由で使います。可視ヘッダは望むならそのように 指示してアクセスすることができます。

`BabylMessage` インスタンスは以下のメソッドを提供します:

`get_labels`( | )

  メッセージに付いているラベルのリストを返します。

`set_labels`( | labels)

  メッセージに付いているラベルのリストを labels にセットします。

`add_label`( | label)

  メッセージに付いているラベルのリストに label を追加します。

`remove_label`( | label)

  メッセージに付いているラベルのリストから label を削除します。

`get_visible`( | )

  ヘッダがメッセージの可視ヘッダでありボディが空であるような `Message` インスタンスを返します。

`set_visible`( | visible)

  メッセージの可視ヘッダを visible のヘッダと同じにセットします。 引数 visible は `Message` インスタンスまたは `email.Message.Message` インスタンス、 文字列、ファイル風オブジェクト(テキストモードで開かれてなければなりません)のいずれかです。

`update_visible`( | )

  `BabylMessage` インスタンスのオリジナルヘッダが変更されたとき、可視ヘッダは 自動的に対応して変更されるわけではありません。このメソッドは可視ヘッダを以下のように 更新します。 対応するオリジナルヘッダのある可視ヘッダはオリジナルヘッダの値がセットされます。 対応するオリジナルヘッダの無い可視ヘッダは除去されます。 そして、オリジナルヘッダにあって可視ヘッダに無い Date:、 From:、Reply-To:、To:、 CC:、Subject: は可視ヘッダに追加されます。

`BabylMessage` インスタンスが `MaildirMessage` インスタンスに 基づいて生成されるとき、以下の変換が行われます:

結果の状態 | `MaildirMessage` の状態
--- | ---
"unseen" ラベル | S フラグ無し
"deleted" ラベル | T フラグ
"answered" ラベル | R フラグ
"forwarded" ラベル | P フラグ

`BabylMessage` インスタンスが `mboxMessage` や `MMDFMessage` のインスタンスに基づいて生成されるとき、Status: および X-Status: ヘッダは省かれ以下の変換が行われます:

結果の状態 | `mboxMessage` または `MMDFMessage` の状態
--- | ---
"unseen" ラベル | R フラグ無し
"deleted" ラベル | D フラグ
"answered" ラベル | A フラグ

`BabylMessage` インスタンスが `MHMessage` インスタンスに 基づいて生成されるとき、以下の変換が行われます:

結果の状態 | `MHMessage` の状態
--- | ---
"unseen" ラベル | "unseen" シーケンス
"answered" ラベル | "replied" シーケンス