mbox(エムボックス)とは
mboxとは、
電子メールメッセージを保存する様々なフォーマットをまとめた総称です。mboxフォーマットの最大の特徴は、すべてのメールを1つのファイルに平文(
プレーンテキスト)形式で保存することです。
mboxの構造
mbox形式では、メールの区切りは「From 」から始まる行で識別されます。各メッセージの終わりは空白行で示されます。平文形式であるため、テキスト処理プログラムで容易に扱うことができ、多くのメールソフトで採用されてきました。
電子メールの保存形式は、
通信プロトコルとは異なり、RFCによる標準化が行われていません。そのため、具体的な保存方法はメールクライアントに委ねられています。
mbox形式では、ユーザーが直接アクセスできる形式でメールが保存されます。類似の形式として「MH (Message Handling System)」があります。
Microsoft Exchange Server や Cyrus IMAP server などのシステムでは、メールシステムによって集中管理されたデータベースにメールが保存されるため、ユーザーが個々のメッセージに直接アクセスすることは容易ではありません。
mboxフォーマットの種類
mboxフォーマットには、mboxo、mboxrd、mboxcl、mboxcl2の4種類が存在します。これらは互換性がなく、異なるバージョンの
UNIXを元にしています。これらの分類と命名は、ダニエル・バーンスタインらによって行われました。
mboxclとmboxcl2は、Unix System V Release 4のメールシステムを元にしています。mboxrdはmboxoの改良版として開発され、qmailなどの
UNIXメールツールで採用されています。
mboxoとmboxrdは、メールヘッダにある「From」行をスキャンしてメールの開始行を特定します。しかし、ヘッダやメール本文に「From」という文字列が含まれている場合、誤ってメールの区切りと認識してしまう可能性があります。そのため、「>」記号を追加して区切りを明確化する処理が行われることがあります。
改良されたmbox
いくつかのメールクライアントでは、mboxフォーマットを改良したものが利用されています。
Eudora: 送信者のメールアドレスを特定の形式に変換したmboxoフォーマットを使用します。また、添付ファイルをメール本文から分離し、個別のファイルとして保存します。
Mozilla (Netscape Messenger, Thunderbird など): mboxrdをベースにした形式を使用しており、「From」行の区切りルールがより複雑になっています。
ファイルロック
mboxフォーマットでは、複数のメールが1つのファイルに保存されるため、複数のプロセスが同時に受信箱を修正しようとすると競合が発生する可能性があります。そのため、ファイルロック(
UNIXのfcntl(), lockf()やdot locking)と呼ばれる仕組みを用いて、ファイルの同時アクセスを制御します。しかし、
Network File System (NFS)のようなネットワークファイルシステム上では、ファイルロックがうまく動作しない場合があります。
メールを読んでいる最中に新しいメールが届いた場合も競合が発生する可能性があるため、メールの閲覧中もファイルロックが必要です。ファイル競合が発生しなかったとしても、mboxファイルの更新中にメールを読もうとすると、メールの内容が破損する危険性があります。
関連項目
Maildir
Eml形式
外部リンク
*
メールのデータ保存フォーマット mbox MH Maildir