Skip to content
Mbox Viewer
mboxformatsarchives

MBOXファイルとは何か

MBOXファイルは、多数のメールを次々と並べただけのプレーンテキストファイルです。各メッセージは「From 」で始まる行から始まります。GmailをGoogle Takeoutで書き出すと届くのがこれで、ThunderbirdやApple Mailがメールを保存しているのもこの形式です。

David Carrero ·

MBOXファイルは、多数のメールを次々と並べて保存したプレーンテキストファイルです。各メッセージはFrom ——Fromと半角スペース——で始まる行から始まります。形式の説明はこれで全部です。GmailをGoogle Takeoutで書き出すと届くのがこれで、ThunderbirdやApple Mailがディスク上にメールを置いている形式でもあります。

ダウンロードフォルダに1つ転がっていて、とにかく中を読みたいだけなら、Macで開くWindowsで開くへ飛んでください。いま自分が手にしているものが何なのかを知りたいなら、このまま先へ。

なぜただのテキストファイルなのか

1970年代前半に生まれたからです。当時、メールボックスとはプログラムが末尾に書き足していくファイルのことでした。MBOX——mailboxの略——は設計されたのではなく、積み重なってできたものです。仕様書が文章になったのは数十年後、RFC 4155においてで、しかもその主目的はインターネット越しにやり取りする方法を説明することでした。

テキストエディタで開けば、ソフトウェアなしで自分のメールが読めます。この一点だけでも知っておく価値があります。いま使っているアプリがこの先どうなろうと、アーカイブがそれに縛られることはありません。50年分のツールがこの形式を読めて、だからこそ各種サービスは今もこの形式で書き出すのです。

メッセージの切れ目はどう判断しているのか

生き残ったのが不思議なほど頼りない約束ごとによってです。From で始まる行が、新しいメッセージの開始を意味します。

当然、すぐに問題が浮かびます。引用された返信やコードの例のなかに、その並びで始まる行が本文に含まれていたらどうなるのか。この問いへの答えが形式のバリエーションです。mboxoは該当する行の先頭に>を付けます。mboxrdも同じことをしますが、すでに>Fromで始まっている行もエスケープするため、変換を元に戻せます。mboxclmboxcl2はエスケープをやめ、代わりに各メッセージの長さをContent-Lengthヘッダーに記録します。

自分のファイルがどれなのかを気にする必要は、ほぼありません。効いてくる場面はただ一つ、ツールが判断を誤ってメッセージの途中で分割し、受け取った覚えのない数のメッセージが入ったメールボックスができあがるときです。

1通のメッセージの中身

すべてが、テキストとして符号化されて入っています。メッセージの冒頭にはヘッダー——FromToSubjectDateと、技術的なものが山ほど——があり、空行をはさんで本文が続きます。

HTML版がある場合や写真が添付されている場合、それらは同じメッセージの中のMIMEパートです。バイナリのファイルはテキストのまま生き延びられるようbase64で符号化されます。写真が数百枚入ったメールボックスが途方もない大きさになるのはこのためです。base64はファイルを元の1.3倍ほどに膨らませ、そのすべてが1つの.mboxの中に収まっています。

MBOXファイルはどこから来るのか

ほとんどの場合、出どころは次の4つのどれかです。

  • Google Takeout Gmailを書き出すとMBOXが届きます。巨大なファイル1つ、メールボックスが非常に大きければ複数に分かれます。Gmailのラベルは書き出し時に専用のヘッダーへ保存され、そのまま残ります。
  • Thunderbird。 Thunderbirdで見えているフォルダは、1つずつがプロファイルフォルダの中のMBOXファイルです。隣にある.msfはThunderbirdだけが使うインデックスです。
  • Apple Mail。 メールボックスを書き出すと、少しややこしいものができます。Inbox.mboxという名前のフォルダで、その中にmboxという名前そのままのファイルが入っています。フォルダは包装で、中のファイルが標準的なMBOXです。
  • メールサーバー。 PostfixやDovecotとその仲間は何十年もこの方式でメールを保存してきました。古いバックアップはこれで一杯です。

では、どうやって開くのか

普通はダブルクリックでは開きません。macOSもWindowsも、この拡張子に紐づくものを何も持っていないからです。何も起きないか、Apple Mailがファイルをインポートしようとするか——後者はまったく別の話です。インポートはすべてのメッセージをMail自身の保存領域へ複製します。開くほうは、ファイルに一切手を触れません。

必要なのは、ファイルを置かれた場所のまま開き、そこに何も書き込まないビューアです。Mbox ViewerがMacとWindowsでやっているのはそれです。ファイルをメモリに丸ごと読み込むのではなくストリーミングで処理するので、およそ50万通・50 GBのアーカイブが5分以内に開き、RAMの使用量は600 MBを下回ったままです。さらにインデックスを作るため、2回目以降は1秒とかかりません。動作は厳密に読み取り専用です。1 GBまでのメールボックスなら、何も購入せずに開けます。

先に変換が必要ですか

読みたいだけなら、まず必要ありません。変換が意味を持つのは、ほかのプログラムが別の形でメールを受け取る必要があるときだけで、そんな場面は検索結果の印象よりずっと少ないものです。実際に必要とされる変換はたいてい逆向きで、OutlookのアーカイブをMBOXへ持ち込むほうです。こちらには専用のガイドがあります。

まとめ

From の行で区切られた、メールだらけのテキストファイル。古くて、単純で、その単純さのおかげで何十年も前のメールがいまだに読めます。厄介なのは形式のほうではなく、OSがそれをどう扱えばいいか知らないこと、そして多くのビューアがファイルの大きさに耐えられないことです。


ほかの用語は用語集にまとめています。まずはMBOXそのものから。

Mbox Viewer でアーカイブを開く

Mac と Windows のネイティブ アプリ。あらゆるサイズの MBOX・EML ファイルを完全にオフラインでストリーミングします。