アップデート一覧に戻る
New releaseAug 7, 2026

mboxshell v0.6.2

mboxShell. あらゆるサイズのMBOXファイルに対応する高速ターミナルビューア。Gmail Takeout バックアップ(50GB以上)から、メモリに読み込むことなくメールを開く・検索・エクスポートできます。Rustで構築されています。

共有

mboxShell

あらゆるサイズのMBOXファイルに対応した高速ターミナルビューア。Gmail Takeoutバックアップ(50 GB以上)のメールをメモリに読み込むことなく、開く・検索・エクスポートができます。

License: MIT Rust

Leer en Espanol / Spanish


このプロジェクトが存在する理由

Google TakeoutでGmailからメールをエクスポートすると、数十ギガバイトにもなる1つ以上の.mboxファイルが得られます。さらに、所有するGoogleグループごとに1つのメールボックスが追加され、これは見落とされがちで、Gmailのエクスポート自体よりも大きくなる可能性があります。これらのファイルをメモリに完全に読み込むことなく、効率的に開いたり、検索したり、閲覧したりできるクロスプラットフォームのターミナルツールは存在しませんでした。

mboxShellはこの問題を解決するために作られました:50 GBのMBOXを数秒で開き、数十万件のメッセージをスムーズに操作し、送信者・日付・内容で検索し、必要なものをエクスポートできます。すべてターミナルから、GUIなし、サーバーなし、外部依存関係なしで実現します。

ユースケース

  • Gmailバックアップの閲覧(Google Takeout)元のラベル付きで
  • 所有するグループの閲覧。Takeoutによって独自のメールボックスとしてエクスポートされるもの — アーカイブ内で最も大きなファイルになることが多い
  • メールアーカイブの分析。サーバー上、移行中、監査中など
  • MBOXファイル内のメッセージ検索(Thunderbird、Unixサーバーなど、あらゆるソースから)
  • メッセージのエクスポート。EML、CSV、プレーンテキスト形式で、さらなる処理のために
  • 添付ファイルの抽出。個別または一括で
  • 複数のMBOXファイルの結合。重複を除去して1つに

Macでも利用可能:mboxViewer

macOSでネイティブなグラフィカル体験をお好みなら、mboxViewerをご覧ください — 同じチームが開発したネイティブMacアプリです。メールクライアントにインポートすることなく、MBOXファイルを開いて閲覧・検索できる、おなじみのメールボックススタイルのインターフェースを提供します。.mboxファイルをドラッグ&ドロップするだけで、すべてのメッセージ、添付ファイル、ラベルにクリーンなmacOSネイティブウィンドウですぐにアクセスできます。mboxShellの解析エンジンのパワーとデスクトップGUIの快適さを両方求めるユーザーに最適です。

ブラウザでも利用可能:Online Mbox Viewer

何もインストールせずにMBOXファイルを覗いてみたいですか?Online Mbox Viewerをお試しください — 同じ作者による無料のMITライセンスのWebアプリです。.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 Groupsメールボックス。 Takeoutアーカイブが所有する各グループに同梱するtopics.mboxファイルを読み取り、意味のないファイル名ではなくグループ名で命名し、グループを仮想ラベルとして表示し、正確なX-GM-THRID IDで会話をスレッド化します。
  • 正しいエンコーディング。 RFC 2047エンコードワードをデコードし、UTF-8、ISO-8859-1、Windows-1252、KOI8-R、およびencoding_rsが認識する任意の文字セットをサポートします。
  • 会話スレッド化。 JWZアルゴリズム(Netscape/Mozillaで使用されているものと同じ)またはメールボックス独自の会話ID(存在する場合)を使用してメッセージをスレッドにグループ化します。
  • 高度な検索。 フィールド固有のフィルタリング(from:subject:date:body:has:attachmentlabel:など)、日付範囲、サイズフィルター、AND/OR演算子、否定。
  • 柔軟なエクスポート。 個別または一括でEML、CSV(Excel互換)、プレーンテキストにエクスポート。デコードされた添付ファイルの抽出。
  • 単一バイナリ。 ランタイム不要、依存関係なし。Linux、macOS、Windowsで動作する約5 MBの実行ファイル。
  • 完全なターミナルUI。 キーボードナビゲーション(viスタイル)、3つのレイアウトモード、インタラクティブ検索バー、設定可能なショートカット。
  • バイリンガル。 インターフェースは英語とスペイン語で利用可能で、システムロケールから自動検出されます。

インストール

プリビルドバイナリ(推奨)

Releasesページからお使いのプラットフォーム向けの最新リリースをダウンロードしてください:

プラットフォームバイナリ
Linux x86_64mboxshell-linux-x86_64
Linux ARM64mboxshell-linux-aarch64
Linux RISC-V 64mboxshell-linux-riscv64
FreeBSD x86_64mboxshell-freebsd-x86_64
macOS Intelmboxshell-macos-x86_64
macOS Apple Siliconmboxshell-macos-aarch64
Windows x86_64mboxshell-windows-x86_64.exe
Windows ARM64mboxshell-windows-arm64.exe

ダウンロード後、実行可能にしてPATHに移動します:

# Linux / macOS
chmod +x mboxshell-*
sudo mv mboxshell-* /usr/local/bin/mboxshell

# またはユーザーローカルディレクトリに配置
mv mboxshell-* ~/.local/bin/mboxshell

Windowsでは、mboxshell-windows-x86_64.exePATH内のフォルダに移動するか、直接実行します。

ソースからビルド

要件:Rust 1.85以降。

# クローンしてビルド
git clone https://github.com/dcarrero/mboxshell.git
cd mboxshell
cargo build --release

# バイナリは target/release/mboxshell にあります
# システム全体にインストール:
sudo cp target/release/mboxshell /usr/local/bin/

# または現在のユーザーのみ:
cp target/release/mboxshell ~/.local/bin/

他のプラットフォーム向けのクロスコンパイル

# 必要なターゲットを追加
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

# 特定のターゲット向けにビルド
cargo build --release --target aarch64-apple-darwin

Cargoでインストール

cargo install --git https://github.com/dcarrero/mboxshell.git

クイックスタート

# ターミナルUIでMBOXファイルを開く
mboxshell mail.mbox

# インデックスを作成して統計を表示
mboxshell index mail.mbox
mboxshell stats mail.mbox

# コマンドラインから検索
mboxshell search mail.mbox "from:[email protected] date:2024"
mboxshell search mail.mbox "has:attachment subject:invoice" --json

# メッセージをエクスポート
mboxshell export mail.mbox --format eml --output ./emails/
mboxshell export mail.mbox --format csv --output summary.csv

# アーカイブの一部だけを引き渡す:一致したものだけを含む新しいメールボックス
mboxshell export mail.mbox --format mbox --query "from:[email protected]" -o handover.mbox

# 添付ファイルを抽出
mboxshell attachments mail.mbox --output ./attachments/

# 複数のMBOXファイルを結合(重複はデフォルトで削除されます)
mboxshell merge file1.mbox file2.mbox -o merged.mbox

# 各メッセージに元のメールボックスをタグ付けして結合
mboxshell merge Inbox.mbox Sent.mbox -o merged.mbox --source-header

# シェル補完を生成
mboxshell completions bash > /etc/bash_completion.d/mboxshell
mboxshell completions zsh > ~/.zfunc/_mboxshell
mboxshell completions fish > ~/.config/fish/completions/mboxshell.fish

CLIコマンド

コマンド説明
mboxshell [FILE]TUIでファイルを開く(デフォルトのアクション)
mboxshell open <path>TUIでMBOXファイルを開く
mboxshell index <path> [-f/--force]バイナリインデックスを構築または再構築
mboxshell stats <path> [--json]MBOXファイルの統計を表示
mboxshell search <path> <query> [--json]コマンドラインからメッセージを検索
mboxshell export <path> -f <format> -o <output> [--query <q>]メッセージをエクスポート(形式:eml、csv、txt、html、mbox)
mboxshell merge <files...> -o <output> [--no-dedup] [--source-header]複数のMBOXファイルを1つに結合
mboxshell attachments <path> -o <output>すべての添付ファイルを抽出
mboxshell completions <shell>シェル補完を生成(bash、zsh、fish、powershell、elvish)
mboxshell manpageマニュアルページを生成

グローバルフラグ:

フラグ説明
-f, --forceインデックスが存在しても強制的に再構築(exportでは-f--format — そこでは--forceと明記してください)
-v, --verboseログの詳細度を上げる(-v info、-vv debug、-vvv trace)
--lang <en|es>インターフェース言語を強制(デフォルトでは自動検出)

結合フラグ:

フラグ説明
--no-dedup重複Message-ID検出をスキップし、入力をバイト単位で連結(重複除去はデフォルトでオン)
--source-headerすべてのメッセージにX-Mbox-Source: <メールボックス名>ヘッダーを注入し、結合されたアーカイブが各メールの送信元メールボックスまで追跡可能にする

ソースラベルは表示されるメールボックス名です:Apple Mailエクスポートの場合 — 文字通りmboxという名前のファイルを含むInbox.mboxディレクトリ — はmboxではなくInbox.mboxと読み取ります。同じラベルになるメールボックスは互いに区別されます(Work/Inbox.mbox vs Personal/Inbox.mbox)。

ターミナルUI

mboxShell screenshot

キーボードショートカット

キーアクション
j / k次の / 前のメッセージ
g / G最初の / 最後のメッセージ
PgDn / PgUpページダウン / アップ
Enterメッセージを開く / メッセージビューに切り替え
Shift-↑ / Shift-↓選択したメッセージ本文をスクロール(リストのフォーカスを維持);位置インジケーター(Top / NN% / Bot)がメッセージの境界に表示されます
Tab / Shift-Tabパネルのフォーカスを循環
Escリストに戻る / ポップアップを閉じる
/検索バーを開く
f検索フィルターポップアップを開く
n / N次の / 前の検索結果
Spaceメッセージをマーク / マーク解除
*すべてをマーク / マーク解除
sソート列を循環(日付、送信者、件名、サイズ)
Sソート方向を切り替え
eメッセージをエクスポート(EML、TXT、CSV、添付ファイル)
a添付ファイルを表示(j/kで移動、Enterで保存、Aですべて保存)
tスレッド(会話)ビューを切り替え
lラベルサイドバーを表示 / フォーカス / 非表示
h完全なヘッダーを切り替え
r生のメッセージソースを切り替え
1 / 2 / 3レイアウト:リストのみ / 水平分割 / 垂直分割
?ヘルプ
q終了

検索構文

from:[email protected]              送信者で検索
to:[email protected]         受信者で検索
cc:[email protected]              Cc受信者で検索
subject:invoice                  件名で検索
body:important text              メッセージ本文で検索(全文)
filename:report.pdf              添付ファイル名で検索
id:<message-id@domain>           Message-IDで検索
has:attachment                   添付ファイルのあるメッセージのみ
has:no-attachment                添付ファイルのないメッセージのみ
label:Inbox                      Gmailラベルでフィルタリング
date:2024-01                     2024年1月のメッセージ
date:2024-01-01..2024-06-30      日付範囲
before:2024-06-01                ある日付より前(その日は含まない)
after:2024-01-01                 ある日付以降(その日を含む)
after:2024-01-01 before:2025-01-01   2024年全体
size:>1mb                        1 MBより大きいメッセージ
size:>1mb size:<5mb              1〜5 MBの間
-subject:spam                    件名に「spam」を含むメッセージを除外
"exact phrase"                   正確なフレーズを検索
from:john subject:budget         暗黙のAND(両方一致する必要があります)
term1 OR term2                   明示的なOR
from:a OR from:b subject:budget  ORはより強く結合:(a OR b) AND subject

対応入力形式

形式拡張子説明
MBOX (mboxrd/mboxo).mbox標準形式。Google Takeout、Thunderbird、Unixサーバー
Google Groupsエクスポートtopics.mboxTakeoutアーカイブ内の<group>@googlegroups.com/にあります。ファイル名はローカライズされているため(temas.mboxなど)、メールボックスはグループ名で命名されます — docs/GOOGLE-GROUPS.mdを参照
Apple MailパッケージName.mbox/mbox内部のファイルが読み取られるもの;メールボックスはパッケージ名で命名されます

パフォーマンス

実際のGoogle Takeout MBOXファイルでテスト済み:

ファイルサイズメッセージ数インデックス作成再オープン
500 MB~5,000~3 秒< 1 秒
5 GB~50,000~30 秒< 1 秒
50 GB~500,000~5 分< 1 秒

仮想スクロール(表示されている行のみがレンダリングされる)により、メッセージリストのナビゲーションは瞬時に行われます。

設定

設定ファイルは~/.config/mboxshell/config.tomlにあります:

[general]
default_sort = "date"
sort_order = "desc"
date_format = "%Y-%m-%d %H:%M"
log_level = "warn"

[display]
theme = "dark"
layout = "horizontal"
show_sidebar = false
max_cached_messages = 50

[export]
default_format = "eml"
csv_separator = ","

アーキテクチャ

src/
+-- main.rs              # clapを使用したCLI
+-- lib.rs               # モジュールの再エクスポート
+-- error.rs             # thiserrorを使用したエラータイプ
+-- config.rs            # TOML設定
+-- mailbox_naming.rs    # 人間向けのメールボックス名(Apple Mailパッケージ)
+-- i18n/                # 国際化(EN/ES)
+-- parser/
|   +-- mbox.rs          # ストリーミングパーサー(ファイルをメモリに読み込まない)
|   +-- eml.rs           # 個別のEMLファイルパーサー
|   +-- mime.rs          # MIMEデコード、マルチパート、文字セット
|   +-- header.rs        # RFC 5322ヘッダー、RFC 2047エンコードワード
+-- index/
|   +-- builder.rs       # バイナリインデックスの構築
|   +-- reader.rs        # インデックスクエリ
|   +-- format.rs        # SHA-256整合性チェック付きバイナリ形式
+-- model/
|   +-- mail.rs          # MailEntry、MailBody
|   +-- attachment.rs    # 添付ファイルのメタデータ
|   +-- address.rs       # RFC 5322アドレス解析
+-- store/
|   +-- reader.rs        # LRUキャッシュ付きオフセットベースの読み取り
+-- search/
|   +-- query.rs         # 検索クエリパーサー
|   +-- metadata.rs      # 高速インデックス検索(O(n)、100万メッセージで200ms未満)
|   +-- fulltext.rs      # ストリーミング全文検索
+-- export/
|   +-- eml.rs           # .emlへのエクスポート
|   +-- csv.rs           # サマリーをCSVにエクスポート(UTF-8 BOM)
|   +-- text.rs          # プレーンテキストへのエクスポート
|   +-- attachment.rs    # 添付ファイルの抽出
|   +-- mbox.rs          # 重複除去とソースヘッダー付きMBOX結合
+-- tui/
    +-- app.rs           # グローバル状態(Elmアーキテクチャ)
    +-- event.rs         # キーボードイベント処理
    +-- ui.rs            # レイアウトとレンダリングのディスパッチ
    +-- threading.rs     # 会話スレッド用のJWZアルゴリズム
    +-- theme.rs         # カラーテーマ
    +-- widgets/         # ビジュアルコンポーネント
        +-- mail_list.rs       # 仮想スクロール付きリスト
        +-- mail_view.rs       # スクロール付きメッセージビューア
        +-- sidebar.rs         # ラベル/フォルダーパネル
        +-- header_bar.rs      # トップバー
        +-- status_bar.rs      # ステータスバー
        +-- search_bar.rs      # 検索バー
        +-- search_popup.rs    # 検索フィルターポップアップ
        +-- help_popup.rs      # ヘルプポップアップ
        +-- attachment_popup.rs # 添付ファイルポップアップ
        +-- export_popup.rs     # エクスポートポップアップ

主要な依存関係

クレート目的
ratatui + crosstermターミナルUI
mail-parserMIME/RFC 5322解析
encoding_rs文字セットのデコード
chrono日付とタイムゾーン
clapCLI引数解析
serde + bincodeインデックスのシリアライズ
sha2インデックスの整合性検証
lruデコード済みメッセージのキャッシュ
tracing構造化ロギング

スポンサー

mboxshellはオープンに開発されており、以下の支援を受けています:

Colorvivo      Stackscale

  • Colorvivo — WordPress、AI、デジタルメディアの専門家。
  • Stackscale — プライベートクラウドインフラストラクチャの専門家。

お使いの会社がmboxshellを有用だと感じ、継続的な開発を支援したい場合は、.github/FUNDING.ymlを参照するか、carrero.esからご連絡ください。

ドキュメント

完全なユーザーマニュアルでは、すべてのコマンド、キーボードショートカット、検索演算子、エクスポートオプション、設定キーを網羅しています:

変更履歴

完全なリリース履歴についてはCHANGELOG.mdを参照してください。

ライセンス

MIT - Copyright (c) 2026 David Carrero Fernandez-Baillo - https://carrero.es

ソースコード: https://github.com/dcarrero/mboxshell

カテゴリ