
mboxshell v0.7.3
mboxShell. あらゆるサイズのMBOXファイルに対応する高速ターミナルビューア。Gmail Takeout バックアップ(50GB以上)から、メモリに読み込むことなくメールを開く・検索・エクスポートできます。Rustで構築されています。
mboxShell
あらゆるサイズのMBOXファイルに対応した高速ターミナルビューア。Gmail Takeoutのバックアップ(50 GB以上)からメールをメモリに読み込むことなく開き、検索し、エクスポートできます。
このプロジェクトが存在する理由
Google Takeoutを使ってGmailからメールをエクスポートすると、数十ギガバイトにもなる1つ以上の.mboxファイルが得られます。さらに、所有するGoogleグループごとに1つずつ追加のメールボックスも生成され、これは見落としやすく、Gmailのエクスポート自体より大きくなることもあります。これらのファイルをメモリに完全に読み込むことなく、効率的に開き、検索し、閲覧できるクロスプラットフォームのターミナルツールは存在しませんでした。
mboxShellはこの問題を解決するために作られました。50 GBのMBOXを数秒で開き、数十万件のメッセージをスムーズにナビゲートし、送信者、日付、内容で検索し、必要なものをエクスポートできます。すべてターミナルから、GUIなし、サーバーなし、外部依存なしで行えます。
ユースケース
- Gmailバックアップを閲覧(Google Takeout)し、元のラベルを表示
- 所有するグループを読む — Takeoutによって独自のメールボックスとしてエクスポートされ、アーカイブ内で最大のファイルであることが多い
- メールアーカイブを分析 — サーバー上、移行中、監査時など
- メッセージを検索 — あらゆるソース(Thunderbird、Unixサーバーなど)のMBOXファイル内で
- メッセージをエクスポート — さらなる処理のためにEML、CSV、プレーンテキストへ
- 添付ファイルを抽出 — 個別または一括で
- 複数のMBOXファイルをマージ — 重複を除去して1つに
デスクトップアプリとしても: Mac、Windows、Linux向けMbox Viewer Pro
ターミナルが苦手ですか? Mbox Viewer Proは、同じ作者によるデスクトップアプリで、mboxShellのパースエンジン上に構築されており、使い慣れたメールボックス風のインターフェースで、あらゆるサイズのMBOXおよびEMLファイルをメールクライアントにインポートすることなく開き、閲覧し、検索できます。すべてはご自身のコンピュータ上に留まり、何もアップロードされません。以下で利用可能です:
- Mac — macOS 14 Sonoma以降、Universal Binary(Apple Siliconでネイティブ)。Mac App Storeまたは直接ダウンロード。
- Windows — Windows 10/11およびWindows Server。Microsoft Storeまたは直接ダウンロード。
- Linux(ベータ) — ネイティブGTK 4およびlibadwaitaアプリ。Ubuntu 24.04以降およびDebian 13(
.deb)、Fedora 44以降(.rpm)およびFlatpak向けのパッケージを、x86_64およびARM64で提供。Linux向けダウンロード。
ライセンスがない場合は無料版として動作し、メールボックスは1 GBまで、時間制限はありません。ターミナルに留まりたい場合は、mboxShellは無料かつオープンソースのままです。
ブラウザでも: Online Mbox Viewer
何もインストールせずにMBOXファイルを覗きたいですか? 同じ作者による無料のMITライセンスのWebアプリ、Online Mbox Viewerをお試しください。.mboxファイルを完全にブラウザ内で開いてレンダリングします。何もサーバーにアップロードされないため、メールはお使いのマシン上に留まります。どのデバイスからでも手軽に確認するのに最適です。ソースコードはgithub.com/dcarrero/online-mbox-viewerにあります。
機能
- ファイルをメモリに読み込むことはありません。 1 MB バッファのストリーミング I/O を使用します。100 GB の MBOX でも、1 GB のものとほぼ同じ約 500 MB の RAM しか使用しません(メモリ上に存在するのはメタデータインデックスのみです)。
- 永続的なインデックス作成。 初回オープン時にバイナリインデックス(
.mboxshell.idx)を作成するため、以降のオープンは 1 秒未満で完了します。 - Gmail の完全サポート。
X-Gmail-Labelsを検出し、サイドバーパネルに仮想フォルダとして表示します。これにより、受信トレイ、送信済み、スター付き、カスタムラベルなどでフィルタリングできます。 - Google グループのメールボックス。 Takeout アーカイブが所有する各グループごとに同梱する
topics.mboxファイルを読み込み、無意味なファイル名の代わりにグループ名を付け、グループを仮想ラベルとして表示し、正確なX-GM-THRIDID で会話をスレッド化します。 - 正しいエンコーディング。 RFC 2047 エンコードワードをデコードし、UTF-8、ISO-8859-1、Windows-1252、KOI8-R、および
encoding_rsが認識する任意の文字セットをサポートします。 - 会話のスレッド化。 JWZ アルゴリズム(Netscape/Mozilla で使用されているものと同じ)を使用してメッセージをスレッドにグループ化します。メールボックス自体が会話 ID を持っている場合はそれを使用します。
- 高度な検索。 フィールド固有のフィルタリング(
from:、subject:、date:、body:、has:attachment、label:など)、日付範囲、サイズフィルター、AND/OR 演算子、および否定。 - 柔軟なエクスポート。 個別または一括で EML、CSV(Excel 互換)、プレーンテキスト、HTML、新しい MBOX または Maildir にエクスポートできます。デコードされた添付ファイルの抽出。
- 単一バイナリ。 ランタイムも依存関係もありません。Linux、macOS、Windows で動作する約 5 MB の実行ファイルです。
- フルターミナル UI。 キーボードナビゲーション(vi スタイル)、3 つのレイアウトモード、インタラクティブな検索バー、設定可能なショートカット。
- バイリンガル。 インターフェースは英語とスペイン語で利用可能で、システムロケールから自動検出されます。
インストール
ビルド済みバイナリ(推奨)
Releases ページからお使いのプラットフォーム向けの最新リリースをダウンロードしてください:
| プラットフォーム | バイナリ |
|---|---|
| Linux x86_64 | mboxshell-linux-x86_64 |
| Linux ARM64 | mboxshell-linux-aarch64 |
| Linux RISC-V 64 | mboxshell-linux-riscv64 |
| FreeBSD x86_64 | mboxshell-freebsd-x86_64 |
| macOS Intel | mboxshell-macos-x86_64 |
| macOS Apple Silicon | mboxshell-macos-aarch64 |
| Windows x86_64 | mboxshell-windows-x86_64.exe |
| Windows ARM64 | mboxshell-windows-arm64.exe |
ダウンロード後、実行可能にし、PATH に移動してください:
# Linux / macOS
chmod +x mboxshell-*
sudo mv mboxshell-* /usr/local/bin/mboxshell
# Or place it in a user-local directory
mv mboxshell-* ~/.local/bin/mboxshell
Windows では、mboxshell-windows-x86_64.exe を PATH の通ったフォルダに移動するか、直接実行してください。
ソースからビルド
要件: Rust 1.85 以降。
# Clone and build
git clone https://github.com/dcarrero/mboxshell.git
cd mboxshell
cargo build --release
# The binary is at target/release/mboxshell
# Install it system-wide:
sudo cp target/release/mboxshell /usr/local/bin/
# Or for the current user only:
cp target/release/mboxshell ~/.local/bin/
他のプラットフォーム向けのクロスコンパイル
# Add the target you need
rustup target add aarch64-apple-darwin # macOS Apple Silicon
rustup target add x86_64-unknown-linux-gnu # Linux x86_64
rustup target add aarch64-unknown-linux-gnu # Linux ARM64
# Build for a specific target
cargo build --release --target aarch64-apple-darwin
Cargo 経由でインストール
cargo install mboxshell # from crates.io
cargo binstall mboxshell # or fetch the release binary, no compiling
cargo install --git https://github.com/dcarrero/mboxshell.git # latest main
パッケージマネージャー
Homebrew (macOS および Linux):
brew install dcarrero/tap/mboxshell
リリースバイナリをシェル補完およびmanページとともにインストールします。brew upgrade で新しいバージョンを取得できます。
Scoop (Windows):
scoop bucket add dcarrero https://github.com/dcarrero/scoop-bucket
scoop install dcarrero/mboxshell
Nix / NixOS — mboxshell は nixpkgs に含まれています:
nix-shell -p mboxshell # try it in a temporary shell
nix run nixpkgs#mboxshell # or run it directly (flakes)
NixOS では、mboxshell を environment.systemPackages に追加してください。新しいリリースは通常数日以内に自動的に nixpkgs unstable に反映されます。
Arch Linux (AUR) — mboxshell(最新リリース)および mboxshell-git(最新の main):
yay -S mboxshell # or paru -S mboxshell
クイックスタート
# Open an MBOX file in the terminal UI
mboxshell mail.mbox
# Index and show statistics
mboxshell index mail.mbox
mboxshell stats mail.mbox
# Search from the command line
mboxshell search mail.mbox "from:[email protected] date:2024"
mboxshell search mail.mbox "has:attachment subject:invoice" --json
# Export messages
mboxshell export mail.mbox --format eml --output ./emails/
mboxshell export mail.mbox --format csv --output summary.csv
# Hand over only part of an archive: a new mailbox with just the matches
mboxshell export mail.mbox --format mbox --query "from:[email protected]" -o handover.mbox
# Convert to Maildir (read/replied/flagged state kept as Maildir flags)
mboxshell export mail.mbox --format maildir -o ~/Maildir/Archive
# Extract attachments
mboxshell attachments mail.mbox --output ./attachments/
# Merge multiple MBOX files (duplicates are removed by default)
mboxshell merge file1.mbox file2.mbox -o merged.mbox
# Merge tagging every message with the mailbox it came from
mboxshell merge Inbox.mbox Sent.mbox -o merged.mbox --source-header
# Generate shell completions
mboxshell completions bash > /etc/bash_completion.d/mboxshell
mboxshell completions zsh > ~/.zfunc/_mboxshell
mboxshell completions fish > ~/.config/fish/completions/mboxshell.fish