Zurück zu den Updates
New releaseAug 21, 2026

mboxshell v0.7.1

mboxShell. Schneller Terminal-Viewer für MBOX-Dateien beliebiger Größe. Öffnet, durchsucht und exportiert E-Mails aus Gmail-Takeout-Backups (50GB+), ohne sie in den Speicher zu laden. In Rust entwickelt.

Teilen

mboxShell

Schneller Terminal-Viewer für MBOX-Dateien jeder Größe. Öffnen, durchsuchen und exportieren Sie E-Mails aus Gmail-Takeout-Backups (50 GB+) ohne sie in den Speicher zu laden.

License: MIT Rust

Leer en Espanol / Spanish


Warum dieses Projekt existiert

Wenn Sie Ihre E-Mails mit Google Takeout aus Gmail exportieren, erhalten Sie eine oder mehrere .mbox-Dateien, die dutzende Gigabyte wiegen können — plus ein weiteres Postfach pro Google-Gruppe, die Sie besitzen, was leicht übersehen wird und größer als der Gmail-Export selbst sein kann. Es gibt kein plattformübergreifendes Terminal-Tool, mit dem Sie diese Dateien effizient öffnen, durchsuchen und browsen können, ohne sie vollständig in den Speicher zu laden.

mboxShell wurde entwickelt, um dieses Problem zu lösen: Öffnen Sie eine 50-GB-MBOX in Sekunden, navigieren Sie flüssig durch Hunderttausende von Nachrichten, suchen Sie nach Absender, Datum oder Inhalt und exportieren Sie, was Sie benötigen. Alles vom Terminal aus, ohne GUI, ohne Server, ohne externe Abhängigkeiten.

Anwendungsfälle

  • Gmail-Backups durchsuchen (Google Takeout) mit ihren ursprünglichen Labels
  • Eigene Gruppen lesen, die von Takeout als eigene Postfächer exportiert werden — oft die größten Dateien im Archiv
  • Mail-Archive analysieren auf Servern, bei Migrationen oder Audits
  • Nachrichten durchsuchen in MBOX-Dateien aus beliebigen Quellen (Thunderbird, Unix-Server usw.)
  • Nachrichten exportieren als EML, CSV oder Klartext zur weiteren Verarbeitung
  • Anhänge extrahieren einzeln oder in großen Mengen
  • Mehrere MBOX-Dateien zusammenführen in eine, mit Entfernung von Duplikaten

Auch für Mac: mboxViewer

Wenn Sie eine native grafische Erfahrung auf macOS bevorzugen, schauen Sie sich mboxViewer an — eine native Mac-App vom selben Team. Sie bietet eine vertraute Postfach-ähnliche Oberfläche zum Öffnen, Durchsuchen und Suchen von MBOX-Dateien, ohne sie jemals in einen Mail-Client zu importieren. Ziehen Sie Ihre .mbox-Datei per Drag & Drop hinein und Sie erhalten sofortigen Zugriff auf alle Ihre Nachrichten, Anhänge und Labels in einem sauberen, nativen macOS-Fenster. Ideal für Benutzer, die die Leistung der mboxShell-Parsing-Engine mit dem Komfort einer Desktop-GUI wünschen.

Auch im Browser: Online Mbox Viewer

Müssen Sie schnell einen Blick in eine MBOX-Datei werfen, ohne etwas zu installieren? Probieren Sie Online Mbox Viewer — eine kostenlose, MIT-lizenzierte Web-App vom selben Autor. Sie öffnet und rendert .mbox-Dateien vollständig in Ihrem Browser: Es wird nichts auf einen Server hochgeladen, sodass Ihre E-Mails auf Ihrem Gerät bleiben. Perfekt für einen schnellen Blick von jedem Gerät. Quellcode unter github.com/dcarrero/online-mbox-viewer.

Funktionen

  • Lädt die Datei nie in den Speicher. Verwendet Streaming-I/O mit einem 1-MB-Puffer. Eine 100-GB-MBOX verbraucht ungefähr dieselben ~500 MB RAM wie eine 1-GB-Datei (nur der Metadatenindex lebt im Speicher).
  • Persistente Indizierung. Das erste Öffnen erstellt einen binären Index (.mboxshell.idx), sodass nachfolgende Öffnungen weniger als eine Sekunde dauern.
  • Volle Gmail-Unterstützung. Erkennt und zeigt X-Gmail-Labels als virtuelle Ordner in einem Seitenleisten-Panel, sodass Sie nach Posteingang, Gesendet, Markiert, benutzerdefinierten Labels usw. filtern können.
  • Google-Gruppen-Postfächer. Liest die topics.mbox-Dateien, die ein Takeout-Archiv für jede Gruppe liefert, die Sie besitzen, benennt sie nach der Gruppe statt nach dem bedeutungslosen Dateinamen, zeigt die Gruppe als virtuelles Label und führt Unterhaltungen anhand der exakten X-GM-THRID-ID zusammen.
  • Korrekte Kodierungen. Dekodiert RFC-2047-kodierte Wörter, unterstützt UTF-8, ISO-8859-1, Windows-1252, KOI8-R und jeden Zeichensatz, der von encoding_rs erkannt wird.
  • Unterhaltungs-Threading. Gruppiert Nachrichten in Threads mit dem JWZ-Algorithmus (derselbe, der von Netscape/Mozilla verwendet wird) oder mit der eigenen Konversations-ID des Postfachs, falls vorhanden.
  • Erweiterte Suche. Feldspezifische Filter (from:, subject:, date:, body:, has:attachment, label: usw.), Datumsbereiche, Größenfilter, UND/ODER-Operatoren und Negation.
  • Flexibler Export. Einzelner oder Massenexport als EML, CSV (Excel-kompatibel), Klartext. Dekodierte Anhangsextraktion.
  • Einzelne Binärdatei. Keine Laufzeit, keine Abhängigkeiten. Eine ~5-MB-ausführbare Datei, die auf Linux, macOS und Windows läuft.
  • Vollständige Terminal-UI. Tastaturnavigation (vi-Stil), drei Layout-Modi, interaktive Suchleiste, konfigurierbare Tastenkürzel.
  • Zweisprachig. Oberfläche verfügbar auf Englisch und Spanisch, automatisch anhand der Systemsprache erkannt.

Installation

Vorgefertigte Binärdateien (empfohlen)

Laden Sie die neueste Version für Ihre Plattform von der Releases-Seite herunter:

PlattformBinärdatei
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

Nach dem Herunterladen ausführbar machen und in Ihren PATH verschieben:

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

# Oder in ein benutzerlokales Verzeichnis legen
mv mboxshell-* ~/.local/bin/mboxshell

Unter Windows verschieben Sie mboxshell-windows-x86_64.exe in einen Ordner in Ihrem PATH oder führen Sie sie direkt aus.

Aus dem Quellcode erstellen

Voraussetzungen: Rust 1.85 oder neuer.

# Klonen und erstellen
git clone https://github.com/dcarrero/mboxshell.git
cd mboxshell
cargo build --release

# Die Binärdatei liegt unter target/release/mboxshell
# Systemweit installieren:
sudo cp target/release/mboxshell /usr/local/bin/

# Oder nur für den aktuellen Benutzer:
cp target/release/mboxshell ~/.local/bin/

Cross-Kompilierung für andere Plattformen

# Das benötigte Ziel hinzufügen
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

# Für ein bestimmtes Ziel erstellen
cargo build --release --target aarch64-apple-darwin

Installation über Cargo

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

Schnellstart

# Eine MBOX-Datei in der Terminal-UI öffnen
mboxshell mail.mbox

# Indizieren und Statistiken anzeigen
mboxshell index mail.mbox
mboxshell stats mail.mbox

# Von der Befehlszeile aus suchen
mboxshell search mail.mbox "from:[email protected] date:2024"
mboxshell search mail.mbox "has:attachment subject:invoice" --json

# Nachrichten exportieren
mboxshell export mail.mbox --format eml --output ./emails/
mboxshell export mail.mbox --format csv --output summary.csv

# Nur einen Teil eines Archivs übergeben: ein neues Postfach nur mit den Treffern
mboxshell export mail.mbox --format mbox --query "from:[email protected]" -o handover.mbox

# Anhänge extrahieren
mboxshell attachments mail.mbox --output ./attachments/

# Mehrere MBOX-Dateien zusammenführen (Duplikate werden standardmäßig entfernt)
mboxshell merge file1.mbox file2.mbox -o merged.mbox

# Zusammenführen und jede Nachricht mit dem Herkunftspostfach taggen
mboxshell merge Inbox.mbox Sent.mbox -o merged.mbox --source-header

# Shell-Vervollständigungen generieren
mboxshell completions bash > /etc/bash_completion.d/mboxshell
mboxshell completions zsh > ~/.zfunc/_mboxshell
mboxshell completions fish > ~/.config/fish/completions/mboxshell.fish

CLI-Befehle

BefehlBeschreibung
mboxshell [DATEI]Eine Datei in der TUI öffnen (Standardaktion)
mboxshell open <pfad>Eine MBOX-Datei in der TUI öffnen
mboxshell index <pfad> [-f/--force]Den binären Index erstellen oder neu erstellen
mboxshell stats <pfad> [--json]Statistiken über eine MBOX-Datei anzeigen
mboxshell search <pfad> <abfrage> [--json]Nachrichten von der Befehlszeile aus suchen
mboxshell export <pfad> -f <format> -o <ausgabe> [--query <q>]Nachrichten exportieren (Formate: eml, csv, txt, html, mbox)
mboxshell merge <dateien...> -o <ausgabe> [--no-dedup] [--source-header]Mehrere MBOX-Dateien in eine zusammenführen
mboxshell attachments <pfad> -o <ausgabe>Alle Anhänge extrahieren
mboxshell completions <shell>Shell-Vervollständigungen generieren (bash, zsh, fish, powershell, elvish)
mboxshell manpageEine Manpage generieren

Globale Flags:

FlagBeschreibung
-f, --forceIndex-Neuerstellung erzwingen, auch wenn einer existiert (bei export ist -f --format — dort --force ausschreiben)
-v, --verboseProtokollausführlichkeit erhöhen (-v info, -vv debug, -vvv trace)
--lang <en|es>Oberflächensprache erzwingen (standardmäßig automatisch erkannt)

Merge-Flags:

FlagBeschreibung
--no-dedupDuplikat-Erkennung anhand der Message-ID überspringen und die Eingaben byteweise verketten (Deduplizierung ist standardmäßig aktiv)
--source-headerEinen X-Mbox-Source: <postfachname>-Header in jede Nachricht einfügen, sodass ein zusammengeführtes Archiv bis zum Herkunftspostfach jeder E-Mail nachvollziehbar bleibt

Das Quell-Label ist der Postfachname, den Sie sehen: Bei einem Apple-Mail-Export — ein Verzeichnis Inbox.mbox, das eine Datei mit dem wörtlichen Namen mbox enthält — wird Inbox.mbox gelesen, nicht mbox. Postfächer, die am Ende dasselbe Label teilen würden, werden gegeneinander eindeutig gemacht (Work/Inbox.mbox vs. Personal/Inbox.mbox).

Terminal-UI

mboxShell-Screenshot

Tastaturkürzel

TasteAktion
j / kNächste / vorherige Nachricht
g / GErste / letzte Nachricht
PgDn / PgUpSeite nach unten / oben
EnterNachricht öffnen / zur Nachrichtenansicht wechseln
Shift-↑ / Shift-↓Ausgewählten Nachrichtentext scrollen (behält Listenfokus); ein Positionsindikator (Top / NN% / Bot) wird im Nachrichtenrahmen angezeigt
Tab / Shift-TabPanel-Fokus wechseln
EscZurück zur Liste / Popup schließen
/Suchleiste öffnen
fSuchfilter-Popup öffnen
n / NNächstes / vorheriges Suchergebnis
SpaceNachricht markieren / Markierung aufheben
*Alle markieren / Markierung aufheben
sSortierspalte wechseln (Datum, Von, Betreff, Größe)
SSortierrichtung umschalten
eNachricht exportieren (EML, TXT, CSV, Anhänge)
aAnhänge anzeigen (j/k zum Navigieren, Enter zum Speichern, A zum Speichern aller)
tThread-Ansicht (Unterhaltungen) umschalten
lLabels-Seitenleiste anzeigen / fokussieren / ausblenden
hVollständige Header umschalten
rRohen Nachrichtenquelltext umschalten
1 / 2 / 3Layout: nur Liste / horizontale Aufteilung / vertikale Aufteilung
?Hilfe
qBeenden

Suchsyntax

from:[email protected]              Nach Absender suchen
to:[email protected]         Nach Empfänger suchen
cc:[email protected]              Nach Cc-Empfänger suchen
subject:invoice                  In der Betreffzeile suchen
body:important text              Im Nachrichtentext suchen (Volltext)
filename:report.pdf              Nach Anhangsdateiname suchen
id:<message-id@domain>           Nach Message-ID suchen
has:attachment                   Nur Nachrichten mit Anhängen
has:no-attachment                Nur Nachrichten ohne Anhänge
label:Inbox                      Nach Gmail-Label filtern
date:2024-01                     Nachrichten vom Januar 2024
date:2024-01-01..2024-06-30      Datumsbereich
before:2024-06-01                Vor einem Datum (dieser Tag ausgeschlossen)
after:2024-01-01                 Ab einem Datum (dieser Tag eingeschlossen)
after:2024-01-01 before:2025-01-01   Das gesamte Jahr 2024
size:>1mb                        Nachrichten größer als 1 MB
size:>1mb size:<5mb              Zwischen 1 und 5 MB
-subject:spam                    Nachrichten mit "spam" im Betreff ausschließen
"exact phrase"                   Nach einem exakten Ausdruck suchen
from:john subject:budget         Implizites UND (beides muss zutreffen)
term1 OR term2                   Explizites ODER
from:a OR from:b subject:budget  ODER bindet enger: (a ODER b) UND subject

Unterstützte Eingabeformate

FormatErweiterungBeschreibung
MBOX (mboxrd/mboxo).mboxStandardformat. Google Takeout, Thunderbird, Unix-Server
Google-Gruppen-Exporttopics.mboxIn einem Takeout-Archiv unter <gruppe>@googlegroups.com/. Der Dateiname ist lokalisiert (temas.mbox, …), daher wird das Postfach nach der Gruppe benannt — siehe docs/GOOGLE-GROUPS.md
Apple-Mail-PaketName.mbox/mboxDie innere Datei wird gelesen; das Postfach wird nach dem Paket benannt

Leistung

Getestet mit echten Google-Takeout-MBOX-Dateien:

DateigrößeNachrichtenIndizierungErneutes Öffnen
500 MB~5.000~3 s< 1 s
5 GB~50.000~30 s< 1 s
50 GB~500.000~5 min< 1 s

Die Navigation in der Nachrichtenliste ist dank virtuellem Scrollen (nur sichtbare Zeilen werden gerendert) sofort.

Konfiguration

Die Konfigurationsdatei befindet sich unter ~/.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 = ","

Architektur

src/
+-- main.rs              # CLI mit clap
+-- lib.rs               # Modul-Re-Exports
+-- error.rs             # Fehlertypen mit thiserror
+-- config.rs            # TOML-Konfiguration
+-- mailbox_naming.rs    # Benutzerfreundliche Postfachnamen (Apple-Mail-Pakete)
+-- i18n/                # Internationalisierung (EN/ES)
+-- parser/
|   +-- mbox.rs          # Streaming-Parser (lädt die Datei nie in den Speicher)
|   +-- eml.rs           # Einzelner EML-Datei-Parser
|   +-- mime.rs          # MIME-Dekodierung, Multipart, Zeichensätze
|   +-- header.rs        # RFC-5322-Header, RFC-2047-kodierte Wörter
+-- index/
|   +-- builder.rs       # Erstellung des binären Index
|   +-- reader.rs        # Index-Abfragen
|   +-- format.rs        # Binärformat mit SHA-256-Integritätsprüfung
+-- model/
|   +-- mail.rs          # MailEntry, MailBody
|   +-- attachment.rs    # Anhangs-Metadaten
|   +-- address.rs       # RFC-5322-Adressparsing
+-- store/
|   +-- reader.rs        # Offset-basiertes Lesen mit LRU-Cache
+-- search/
|   +-- query.rs         # Suchabfrage-Parser
|   +-- metadata.rs      # Schnelle Indexsuche (O(n), < 200 ms für 1 M Nachrichten)
|   +-- fulltext.rs      # Streaming-Volltextsuche
+-- export/
|   +-- eml.rs           # Export als .eml
|   +-- csv.rs           # Zusammenfassung als CSV exportieren (UTF-8-BOM)
|   +-- text.rs          # Als Klartext exportieren
|   +-- attachment.rs    # Anhangsextraktion
|   +-- mbox.rs          # MBOX-Zusammenführung mit Deduplizierung und Quell-Header
+-- tui/
    +-- app.rs           # Globaler Zustand (Elm-Architektur)
    +-- event.rs         # Tastaturereignisbehandlung
    +-- ui.rs            # Layout- und Render-Dispatch
    +-- threading.rs     # JWZ-Algorithmus für Unterhaltungs-Threads
    +-- theme.rs         # Farbthema
    +-- widgets/         # Visuelle Komponenten
        +-- mail_list.rs       # Liste mit virtuellem Scrollen
        +-- mail_view.rs       # Nachrichtenbetrachter mit Scrollen
        +-- sidebar.rs         # Labels/Ordner-Panel
        +-- header_bar.rs      # Obere Leiste
        +-- status_bar.rs      # Statusleiste
        +-- search_bar.rs      # Suchleiste
        +-- search_popup.rs    # Suchfilter-Popup
        +-- help_popup.rs      # Hilfe-Popup
        +-- attachment_popup.rs # Anhang-Popup
        +-- export_popup.rs     # Export-Popup

Wichtige Abhängigkeiten

CrateZweck
ratatui + crosstermTerminal-UI
mail-parserMIME/RFC-5322-Parsing
encoding_rsZeichensatz-Dekodierung
chronoDaten und Zeitzonen
clapCLI-Argumentparsing
serde + bincodeIndex-Serialisierung
sha2Index-Integritätsprüfung
lruCache für dekodierte Nachrichten
tracingStrukturierte Protokollierung

Sponsoren

mboxshell wird offen entwickelt und wird unterstützt von:

Colorvivo      Stackscale

  • Colorvivo — Experten für WordPress, KI und digitale Medien.
  • Stackscale — Experten für Private-Cloud-Infrastruktur.

Wenn Ihr Unternehmen mboxshell nützlich findet und die weitere Entwicklung unterstützen möchte, sehen Sie sich .github/FUNDING.yml an oder kontaktieren Sie uns über carrero.es.

Dokumentation

Das vollständige Benutzerhandbuch deckt jeden Befehl, jedes Tastaturkürzel, jeden Suchoperator, jede Exportoption und jeden Konfigurationsschlüssel ab:

Änderungsprotokoll

Die vollständige Versionshistorie finden Sie in CHANGELOG.md.

Lizenz

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

Quellcode: https://github.com/dcarrero/mboxshell

Kategorien