Mbox

mbox(エムボックス)とは電子メールメッセージの保存フォーマット群の総称である。mboxフォーマットではすべてのメールが単一ファイルに平文(プレーンテキスト)のまま保存される。メッセージの区切りは最初の5文字に「From」が含まれ次にスペースとReturn-Pathが続く行によって示される。各メッセージの最終行は空白行となる。mboxフォーマットは保存形式が平文であるので、文字列処理プログラムで容易に扱うことができ、多くのメールソフトに採用された。

電子メールのやりとりに用いられる通信プロトコルと異なり、電子メールの保存形式はRFCによる標準化は行われなかったため、電子メールクライアントに委ねられた。

mbox型式ではユーザーが直接アクセスすることができる「Internet Message Format (RFC 2822)」で電子メールメッセージを保存する。似た型式に「MH (Message Handling System)」がある。Microsoft Exchange ServerCyrus IMAP server などのシステムではメールシステムによって集中管理されたデータベースによってメールメッセージを保存するため、ユーザーが個々のメッセージに直接アクセスすることは容易ではない。

系統

mboxフォーマット群はmboxo、mboxrd、mboxclおよびmboxcl2の4つのフォーマットからなり、それぞれに互換性がなく、異なるバージョンのUNIXを元にしている。フォーマットの分類と名付けはダニエル・バーンスタイン、Rahul Dhesiらによって行なわれた。

mboxclおよびmboxcl2はUnix System V Release 4のメール・システムを元にしている。mboxrdはmboxoの改良版としてRahul Dhesiらによって開発され、qmailを含むいくつかのUNIX メール・ツールに採用された。mboxoとmboxrdはメールヘッダにある「From」行をスキャンして開始行とする。ヘッダ、またはメール本文の最初の行に「From」文字列がある場合(後者はありがちである)、メールが受信箱に入れられる前、もしくは該当行がメールの区切りとして認識される前に「不等号」が追加されることになる。

改良mbox

メール・クライアントにはmboxフォーマットを改良して利用しているものもある。

  • Eudoraは送信者の、メールアドレスを「???@???」に成形した形式のmboxoフォーマットを用いる。多くのメール・クライアントでは受信メールはそのまま保存されるが、Eudoraでは添付ファイルをメール本文から分離し、特定のフォルダに個別のファイルとして保存する。
  • Mozilla (Netscape Messenger, Thunderbird など)ではmboxrdのアレンジバージョンが利用されており、From行の区切りルールがさらに複雑となっている。

ファイルロック

非互換のそれぞれのメカニズムはメールのファイルロック(UNIXのfcntl(), lockf()やdot locking)を可能にするため、異なるmboxフォーマットにより運用されてきた。これはNetwork File System (NFS)のようなネットワーク上にマウントされたファイルシステムではうまく動作しない。複数のメールが1つのファイルに格納されるので、受信箱を同時に修正しようとする複数のプロセスによる競合を回避する必要がある。メールを読んでいる最中に新規メールが到着する場合にも競合となるので、メールが読まれているときはファイルロックが必要となる。実際のファイル競合が発生しなかったとしても、別のプロセスによりmboxファイルの更新が行われている場合、同時にメールを読もうとするとメール本文が崩れてしまう危険がある。

関連項目

他の電子メールメッセージ保存フォーマット

外部リンク