Mail は受け取った添付ファイルをすべて溜め込んでいる
Mac の Mail アプリが添付ファイルをどこにキャッシュしているのか、その容量を確認する方法と、削除しても安全なファイルの見分け方を解説します。
この種のガイドは、現在のところ英語版のほうが充実しています。 すべての記事を見る
同じアカウントで何年も Apple の Mail を使っているなら、この数字にはたいてい驚かされます。
du -sh ~/Library/Mail
複数のメールアカウントをしばらく接続してきた人にとって、10〜30GB はごく普通の数字です。特に大き な添付ファイル——請求書、デザインファイル、リンクではなく添付として送られてくる写真——を定期的に 受け取るアカウントがあればなおさらです。
なぜこれほど大きくなるのか:Mail はすべてのローカルコピーを保持する
Apple の Mail は、設定されているすべてのアカウントについて、オフラインアクセスと高速検索のため に、すべてのメッセージとすべての添付ファイルをダウンロードし、無期限にローカルへキャッシュしま す。必要になったときだけ取得する Web ベースのメールクライアントとは違い、Mail の設計そのものが 「すべてオフラインで使えるようにしておきたい」という前提に立っています——これは実際に便利なので すが、そのストレージコストは何年もかけて静かに積み上がっていきます。
# See which account is actually responsible for the size
du -sh ~/Library/Mail/V*/*/ 2>/dev/null | sort -hr
V* というバージョン番号付きのフォルダ(V9、V10 など。macOS/Mail のデータベース形式が変わる
たびに番号が増えます)には、設定済みのアカウントごとに1つのサブフォルダが、内部識別子の名前で入
っています——特定のアカウントとフォルダを対応させたい場合は、Mail → Settings → Accounts と
突き合わせてください。
ダウンロード済み添付ファイル
ほとんどの人にとって最大の単一要素は添付ファイルで、Mail はメッセージデータベース本体とは別に、 添付ファイル専用のキャッシュも保持しています。
du -sh ~/Library/Containers/com.apple.mail/Data/Library/Mail\ Downloads
このフォルダには、Mail から開いたり保存したりした添付ファイルが入っています——すでに必要なもの を別の場所へ保存済みであれば、消しても安全です。添付ファイルは元のメールの中に依然として存在して おり、そこから再び開くことができるからです。
rm -rf ~/Library/Containers/com.apple.mail/Data/Library/Mail\ Downloads/*
何年も前に削除したアカウントのデータが、まだキャッシュに残っていることがある
これはほとんどの人が予想していない部分です。Mail の設定からメールアカウントを削除しても、そのロ ーカルキャッシュが即座に、あるいは完全に消去されるとは限りません。転職した、古いメールアドレスを 閉じた、プロバイダを乗り換えた、といった経験があるなら、そのアカウントのメッセージ履歴が丸ごと Mail に残っていないか確認してください。
# List every account folder currently on disk, whether or not it's
# still configured in Mail → Settings → Accounts
ls ~/Library/Mail/V*/
これを、Mail の設定にある実際の現在のアカウント一覧と照らし合わせてください。対応する有効なアカ
ウントが見つからないフォルダは、削除しても安全です——ただし Mail を終了させてから、V* ディレク
トリ全体ではなく該当するアカウントのサブフォルダだけを削除してください。
その後に検索がおかしくなった場合のインデックス再構築
Mail は生のメッセージデータとは別に、検索インデックス(Envelope Index)を管理しています。何ら
かのクリーンアップの後に Mail の検索がおかしな挙動を始めた場合——あるいはクリーンアップとは無関
係に、これはときどき自然に起こることでもあります——再構築するのが標準的な対処法で、実際のメッセ
ージには一切触れません。
# Quit Mail first
rm ~/Library/Mail/V*/MailData/Envelope\ Index*
# Relaunch Mail — it rebuilds the index automatically, which can take
# several minutes for a large mailbox
触れてはいけないもの
現在実際に使っているアカウントのサブフォルダには、オフラインアクセス用の実際のメッセージ内 容が入っています——これはこのブログで扱っている他のキャッシュとは事情が異なります。IMAP アカウ ントであればメッセージはメールサーバー上にも存在しますが、ローカルのみのメールボックス(一部の 古い POP 設定や On My Mac メールボックス)では、ローカルコピーが唯一のコピーである場合がありま す。「すべて削除して再同期させる」というアプローチが安全かどうかは、アカウントの種類を確認してか ら判断してください——IMAP アカウントなら概ね安全です(Mail がサーバーから再ダウンロードします) が、On My Mac メールボックスでは安全ではありません。
ディスク全体の中での位置づけ
Mail は、添付ファイル付きのメールを受け取り続ける限り継続的に増え続ける、正真正銘のランニングコ ストです。その意味では開発者のビルドキャッシュよりも Photos に近い性質を持っています——単なる副 産物ではなく、あなたが実際に欲しいかもしれない本物のデータです。判断に迷わず安全に対象にできるの は、すでに別の場所へ保存済みの添付ファイルと、古いアカウントの残骸——どちらも上で説明したもの—— だけです。
DevCruft は、Mail のストレージも他のすべてと一緒にマップ上に表示し、~/Library/Containers の
3階層下に埋もれていて誰も気づかないフォルダを、既知の、サイズの分かった存在にすることを目指して開
発中の無料 Mac アプリです。公開時に知りたい方は ウェイトリスト に登録してください。
iMessage の添付ファイルについても同じ状況があります。 Messages のストレージガイド を参照してください。