###
2 `mbox`

クラス `mbox`( | path[, factory=None[, create=True]])

  mbox 形式のメールボックスのための `Mailbox` のサブクラス。 パラメータ factory は呼び出し可能オブジェクトで (バイナリモードで開かれているかのように振る舞う)ファイル風メッセージ表現を 受け付けて好みの表現を返すものです。factory が `None`ならば、 `mboxMessage` がデフォルトのメッセージ表現として使われます。 create が `True` ならばメールボックスが存在しないときには 作成します。

mbox 形式は Unixシステム上でメールを保存する古くからある形式です。 mbox メールボックスでは全てのメッセージが一つのファイルに保存されており それぞれのメッセージは "From " という5文字で始まる行を先頭に付けられています。

mbox 形式には幾つかのバリエーションがあり、それぞれオリジナルの形式にあった欠点を克服すると 主張しています。互換性のために、`mbox` はオリジナルの(時に mboxo と呼ばれる) 形式を実装しています。すなわち、Content-Length: ヘッダはもしあっても 無視され、メッセージのボディにある行頭の "From " はメッセージを保存する際に ">From " に変換されますが、この ">From " は読み出し時にも "From " に変換されません。

`mbox` で実装された `Mailbox` のいくつかのメソッドには特別な注意が 必要です。

`get_file`( | key)

  `mbox` インスタンスに対し `flush()` や `close()` を呼び出した 後でファイルを使用すると予期しない結果を引き起こしたり例外が送出されたりすることがあります。

`lock`( | )

`unlock`( | )

  3種類のロック機構が使われます -- ドットロッキングと、もし使用可能ならば `flock()` と `lockf()` システムコールです。

参考:

qmail の mbox man ページ
  mbox 形式の仕様および種々のバリエーション

tin の mbox man ページ
  もう一つの mbox 形式の仕様でロックについての詳細を含む

Configuring Netscape Mail on Unix: Why The Content-Length Format is Bad
  バリエーションの一つではなくオリジナルの mbox を使う理由

"mbox" is a family of several mutually incompatible mailbox formats
  mbox バリエーションの歴史