mbox メールファイルは、複数のメールをひとつの大きなファイルにまとめたものです。 個々のメールは "From " から始まって改行で終わるので、 これを元に各メールを分割することができます。
このクラスは mbox ファイル名をコンストラクタで受け取り、 open() をコールして各メールの開始位置と終了位置のインデックスを作成します。 また、インデックスの位置を使用して get() をコールすると、各メールを返します。
このクラスを使用すると、mbox ファイルに対してメッセージの insert()、 remove() や update() ができるようになります。これらのメソッドをコールすると、 このクラスはまず、前回インデックスを作成した後でファイルが変更されていないかどうかを調べます。 間違った位置をインデックスで指定すると、ファイルが壊れてしまうからです。 get() で単一のメッセージを取得する際にはこのチェックは行われません。 なぜなら、例えば何千通ものメールを取得する際などに速度が遅くなってしまうからです。 しかし、 hasBeenModified() をコールしてから get() を使用することで、自分自身で変更をチェックすることができます。 このメソッドが true を返した場合は、 close() をコールしてから open() でファイルを再オープンしなければなりません。
もし何かおかしなことが起こってその原因がわからない場合は、 setDebug(true) でデバッグ機能を有効にします。また、mbox ファイルに対して追加/削除/変更 を行った際にファイルが保存される一時ディレクトリを変更するには、 setTmpDir('/path/') を使用します。