MBOX

MBOXファイルとは

メールボックスまるごとを 1 ファイルに。Gmail や Thunderbird から書き出すとこれになります。

MBOX とは何か

MBOX はプレーンテキスト形式です。どのエディターでも開けます。 メールと長期保存のために使われます。

拡張子は .mbox、正式名称は Mailbox Archive です。ただしどちらも、そのファイルが中に何を持てるかほどには多くを語りません。このページの残りは、その中身についての話です。

MBOX はどこから来たのか

1975 年までさかのぼります。 仕様は RFC 4155 です。

これだけ長く読まれ続けてきた形式なら、10 年後に取り出したいものを預けても大丈夫です。

仕様は公開されています

仕様書がそのまま公開されているので、中身を推し量るのではなく文書を読んで実装できます。この形式が数多くのプログラムに載っているのはそのためであり、20 年前に書かれたファイルが今も開けるのもそのためです。ただし「仕様が公開されている」ことと「使用料が要らない」ことは別の話です。中でコーデックを包んでいる形式では、特許のライセンスは仕様書が答えていない別の問題として残ります。

1 つのファイルに複数ページを持てます

MBOX ファイルは 1 ページに縛られていません。1 ページしか持てないものへ変換するときには、これが効いてきます。1 回の変換で出てくるのは 1 ページぶんのファイル 1 つで、取られるのは先頭のページです——どのページを取るかを選ばせてくれる変換であれば、そのページになります。

MBOX を開けるのは何か

Mozilla ThunderbirdとApple Mailが読めますし、同じ種類のプログラムならたいてい読めます。

ファイルが開かないとき、形式が悪いことはめったにありません。たいていはプログラムのほうが形式より古いのです。もっと古い形式に変換してしまうのが確実な逃げ道で、このサイトの残りの部分はそのためにあります。

ブラウザーで開く

これを読めるブラウザーはありません。

これを変換するいちばんよくある理由がこれです。形式が悪いのではありません。ファイルを見せたい場所が、それを読めないというだけのことです。

渡すための形式です

MBOX は渡すために作られたもので、中で作業するためのものではありません。編集は可能ですが、快適だったためしはありません。賢い道は、元のファイルへ戻ってもう一度書き出すほうを通ります。

おそらく Google Takeout から手に入れたはずです

MBOX はメールボックスをエクスポートすると手に入るもので、断然もっとも多い経路は Google Takeout ── Gmail のコピーを渡すサービス ── です。Thunderbird も同じ方式でエクスポートでき、Apple Mail もできます。アーカイブや移行のツールの多くは、これがどのシステムでも合意されている唯一のメールボックス形式だからという理由で、これを生成します。

届くのはラベルやフォルダーごとに一つのファイルで、非常に大きくなることがあります。十年分のメールと添付ファイルは、日常的に数ギガバイト、ときに数十ギガバイトになります。このサイズが最初の驚きであり、それは間違いではありません。ファイルはすべてのメッセージとすべての添付ファイルを、無圧縮のまま含んでいます。

設計は、すべてをつなげたテキストファイルです

MBOX はメールボックス内のすべてのメッセージを、一つのプレーンテキストファイルの中に順番に書き並べたものです。各メッセージは "From " という行 ── コロンなし、これが From: ヘッダーと区別する点です ── で始まり、次にそのような行が始まるまで続きます。

それがこの構造のすべてです。索引もなく、目次もなく、たまたま正しい始まり方をするテキストの行以外にメッセージの境界は何もありません。これは 1975 年の設計であり、想像どおりの性質を持っています。この上なくシンプルで、何にでも読め、そして四万通の中から一通を見つけるにはまったく向いていません。

メッセージが途中で切れて見えることがある理由

区切りが普通のテキストの行であるため、メッセージ本文の先頭に "From " で始まる行があると、次のメッセージの始まりに見えてしまいます。メールソフトはファイルを書くときにそれをエスケープしますが、たいていは大なり記号を挿入する形で行い、実装ごとに五十年間違う方法でエスケープしてきました。

これがこの形式の「壊れやすい」という評判の源です。あるプログラムが書き、別のプログラムが読んだメールボックスは、メッセージが途中で切れていたり、二つのメッセージが融合していたり、行頭に元にはなかった山括弧が付いていたりすることがあります。ファイルが壊れているのではなく、二つの実装が、一度も正確に規定されなかった慣習について食い違っているだけです。

どこにも取り込まずに開く

Thunderbird が標準的な答えです。ローカルフォルダーを作り、MBOX をプロファイルディレクトリに入れるかインポート用のアドオンを使えば、メッセージは検索も読み取りもできる普通のメールボックスとして現れます。大きなエクスポートを一度だけ見るなら、かかる二十分をかける価値があります。

テキストエディタでも開けます。小さいファイルなら、それが「必要なメッセージが本当にここにあるか」を確かめるいちばん速い方法です。数ギガバイトのファイルなら、多くのエディタは拒否するか、機械ごと動かなくなります。それはエディタの限界であってこの形式の限界ではありません。

ブラウザーやオペレーティングシステムがダブルクリックで見せてくれることはありません。Windows にも macOS にも組み込みのハンドラーがなく、これがこのファイルがダウンロードフォルダーに一年放置される理由です。

個々のメッセージに分割する

これが多くの人が実際に望んでいるものです。MBOX はバックアップで、個々の EML ファイルは読める、転送できる、提出書類に添付できる、弁護士に渡せるものです。分割は不透明な一つの塊を、すでに持っているツールで検索できるフォルダーに変えます。

これはまた、変換の前に踏むべき正しい第一歩です。メールボックスまるごとを PDF に変換すると何千もの文書ができて、何も見つけられません。まず分割し、本当に関係する二十通を特定し、その分だけを変換するのが、午後で終わる作業と二週間かかる作業の違いです。

添付ファイルは中に入っていて、これが大きい理由です

送受信したすべての添付ファイルがファイルの中に入っていて、base64 のテキストとして符号化されています。符号化はバイナリデータをおよそ三割膨らませ、この形式では何も圧縮されないので、四ギガバイトの添付ファイルを含むメールボックスは、ディスク上では優に五ギガバイトを超えます。

実用上の帰結が一つあります。MBOX は非常に圧縮しやすいということです。エクスポートを保存や転送の前に ZIP 化すれば、たいていサイズが半分になります。base64 のテキストは非常に冗長だからです。Takeout のアーカイブをバックアップとして保管するなら、ZIP のまま保つのはほぼ無料です。

得意なことと、そうでないこと

優れたアーカイブです。プレーンテキストで、公開された仕様があり、五十年分の実装があり、いま使われているどのメールクライアントも置き換えられたあとにも読める形式です。自分のメールを、契約しているプロバイダーより長く残したいなら、冷たいストレージに置いた MBOX は確かな答えです。

作業用の形式としては貧弱です。索引がないのですべての検索がファイル全体を読み、安全な同時アクセスもないので二つのプログラムが同時に触ると壊れることがあり、メッセージ自体が持つもの以外のメッセージごとのメタデータもありません ── ラベル、フラグ、フォルダー構造はこの形式の外にあり、どんな移行でも失われるか近似されます。アーカイブに、そして移動に使ってください。そこに住まわせるものではありません。

基本情報

MBOXフォーマットの識別子と出自。
拡張子.mbox
メディアタイプapplication/mbox
初版1975
仕様RFC 4155

MBOX ファイルについてよくある質問

MBOX ファイルはどう開けばいいですか

Thunderbird が普通の道です。この形式をネイティブに読み、検索できるメールボックスを見せてくれます。小さいファイルならテキストエディタでも構いません。Windows にも macOS にも組み込みのハンドラーがないため、ダブルクリックしても何も起きません。

Gmail のエクスポートがこんなに大きいのはなぜですか

これまで受け取ったすべての添付ファイルがファイルの中に入っていて、base64 で符号化されバイナリデータをおよそ三割膨らませ、この形式では何も圧縮されないからです。エクスポートを ZIP 化すればたいてい半分になります。base64 のテキストは非常によく圧縮されるからです。

MBOX と EML の違いは何ですか

EML は一通のメッセージで、MBOX はすべてのメッセージが一つのファイルに連結されたメールボックスまるごとです。MBOX を分割すると個々の EML ファイルが得られ、これが特定のメッセージを読んだり転送したりファイルしたりしたいときにたいてい求められているものです。

MBOX を Outlook に取り込めますか

直接はできません ── Outlook はこの形式を読みません。普通の道は先に Thunderbird に取り込んでからメッセージを移すか、個々のメッセージファイルに変換することです。これがそもそもこの形式を変換する、いちばんよくある理由の一つです。

一部のメッセージが途中で切れたり融合したりして見えるのはなぜですか

この形式は "From " で始まる行でメッセージを区切っていて、行頭にそのような行を含む本文は境界と誤認されることがあります。実装ごとにこれを何十年も違う方法でエスケープしてきたため、あるプログラムが書き別のプログラムが読んだファイルでは、変な切れ目が見えることがあります。中身はたいてい無事です。

自分のラベルやフォルダーは保たれますか

部分的にだけです。Google Takeout はラベルごとに一つのファイルを書き出し、ヘッダーにラベルを記録しますが、フォルダー構造とフラグはこの形式そのものの一部ではありません。移行はメッセージを保ち、周りのものは近似すると考えてください。