###
5 `MMDF`

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

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

MMDF は単一ファイルのメールボックス形式で Multichannel Memorandum Distribution Facility というメール転送エージェント用に発明されたものです。 各メッセージは mbox と同様の形式で収められますが、前後を4つの Control-A ("`\001`") を含む行で挟んであります。 mbox 形式と同じようにそれぞれのメッセージの開始は "From " の5文字を含む行で 示されますが、それ以外の場所での "From " は格納の際 ">From " には変えられません。 それは追加されたメッセージ区切りによって新たなメッセージの開始と見間違うことが 避けられるからです。

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

`get_file`( | key)

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

`lock`( | )

`unlock`( | )

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

参考:

tin の mmdf man page
  ニュースリーダ tin のドキュメント中の MMDF 形式仕様

MMDF
  Multichannel Memorandum Distribution Facility についてのウィキペディアの記事