Skip to content
Mbox Viewer Pro
mboxarchivesproduct

Wie man eine 50 GB große MBOX-Datei öffnet

Große MBOX-Dateien bringen Reader nicht deshalb zum Absturz, weil sie beschädigt wären — sondern weil die meisten Reader erst die ganze Datei in den Speicher laden. Was ein Streaming-Parser und ein Index daran ändern, mit echten Zahlen.

David Carrero ·

Nimm einen Reader, der die Datei im Durchlauf liest, statt sie zu laden. Mit so einem geht ein 50-GB-Postfach mit rund einer halben Million Nachrichten in unter fünf Minuten auf, bleibt unter 600 MB RAM und öffnet von da an in weniger als einer Sekunde. Ohne so einen ist die Größe deiner Datei einerlei: Der Reader kippt ohnehin irgendwo zwischen 500 MB und 2 GB um.

Warum geht allen anderen die Luft aus?

Weil der naheliegende Weg, einen Mailreader zu bauen, so aussieht: Datei zerlegen, im Speicher eine Liste der Nachrichten aufbauen, anzeigen. Beim Testen funktioniert das wunderbar, denn das Beispielpostfach hat 40 MB.

Dann öffnet jemand einen Gmail-Export. Nun will der Parser eine halbe Million Nachrichten auf einmal im RAM halten, der Prozess wächst über das hinaus, was der Rechner hat, und du bekommst einen Ladekreisel, der nie endet, einen Absturz oder — am schlimmsten — ein Fenster, das nach zwanzig Minuten erscheint und bei jedem Klick stockt.

Die Datei ist nicht das Problem. Eine 50 GB große MBOX ist eine vollkommen gewöhnliche MBOX; das Format hat keine Größenbegrenzung und hatte nie eine. Eine Grenze hat die Annahme, dass alles in den Speicher passt.

Was „im Durchlauf lesen“ tatsächlich heißt

Ein Streaming-Parser läuft die Datei in kleinen Häppchen ab — Mbox Viewer benutzt einen 1-MB-Puffer — und merkt sich, wo jede Nachricht anfängt, statt die Nachricht selbst zu behalten. Der Speicherbedarf hängt daran, wie viele Nachrichten es gibt, nicht daran, wie groß sie sind, und ein Cache hält die Handvoll, die du gerade liest.

Die praktische Folge: Ein 50-GB-Archiv zu öffnen kostet ungefähr so viel RAM wie ein 500-MB-Archiv. Die Zahlen, die wir veröffentlichen, von der Funktionsseite:

GrößeNachrichtenErstes ÖffnenErneutes ÖffnenRAM
500 MB~5.000< 5 Sek.< 1 Sek.< 100 MB
5 GB~50.000< 30 Sek.< 1 Sek.< 200 MB
50 GB~500.000< 5 Min.< 1 Sek.< 600 MB

Warum das zweite Öffnen sofort geht

Weil dieser erste Durchlauf etwas hervorbringt, das aufzuheben sich lohnt: einen Binärindex darüber, wo jede Nachricht anfängt. Erneutes Öffnen heißt, den Index zu laden, und nicht, 50 GB noch einmal zu lesen.

Der Index wird per SHA-256 geprüft: Ändert sich das Postfach unter ihm — du hast die Datei ersetzt oder etwas angehängt —, merkt die App das und baut ihn neu, statt dir eine veraltete Liste zu zeigen. Er liegt außerhalb deines Postfachs, das Byte für Byte so bleibt, wie es war.

Einmal fünf Minuten, danach jedes Mal eine Sekunde. Bei einem Archiv, in das du über Jahre gelegentlich hineinschaust, ist dieses Verhältnis der ganze Unterschied zwischen einer Datei, die du benutzt, und einer, um die du einen Bogen machst.

Funktioniert die Suche in dieser Größe noch?

Ja, und sie ist der eigentliche Grund für den Aufwand. Eine halbe Million Nachrichten scrollt man nicht, die fragt man ab. from:, to:, subject:, body:, date:, has:attachment, size:>, exakte Wendungen, OR und Verneinung — den kompletten Satz hat der Spickzettel.

Die Suche im Rumpf liest tatsächlich durch die Post, bei einem sehr großen Archiv dauert sie also Sekunden statt gar nichts. Suchen über Kopfzeilen — Absender, Betreff, Datum — kommen sofort zurück, und sie beantworten die meisten Fragen.

Sollte man die Datei lieber teilen?

Manchmal, aber seltener, als vermutet wird. Teilen lohnt sich, wenn du die Teile wirklich einzeln brauchst — eine Datei pro Jahr fürs Archiv, oder eine Scheibe, die jemand bekommen soll. Es lohnt sich nicht, bloß damit die Datei aufgeht: Wenn das Problem deines Readers der Reader ist, behebt Teilen gar nichts.

Willst du doch teilen, haben wir eine Anleitung für große Thunderbird-Postfächer. Und wenn du in Wahrheit eine Teilmenge herausgeben musst, ist es sauberer, eine Auswahl als neue MBOX zu exportieren: per Suche oder Filter auf das eingrenzen, worum es geht, diese Nachrichten in eine neue Datei schreiben und das Original in Ruhe lassen.

Praktische Hinweise für sehr große Archive

  • Plattenplatz: Du brauchst Platz für den Index, nicht für eine Kopie der Post. Er ist ein Bruchteil des Postfachs.
  • Leg sie fürs erste Öffnen nicht auf eine Netzwerkfreigabe. Im Durchlauf lesen heißt, die ganze Datei einmal zu lesen, und das über WLAN zu tun macht aus fünf Minuten einen Nachmittag. Kopier sie lokal, öffne sie, leg sie zurück.
  • Mehrteilige Takeout-Exporte: Google zerlegt sehr große Postfächer in mehrere Dateien. Jede geht für sich auf, und sie lassen sich zu einem einzigen Postfach zusammenführen, wobei doppelte Nachrichten per Message-ID entfernt werden, falls sich die Teile überschneiden.
  • Die kostenlose Fassung öffnet bis 1 GB. Darüber ist es ein einmaliger Kauf — kein Abo, kein Konto.

Öffne dein Archiv mit Mbox Viewer

Native App für Mac und Windows. Streamt MBOX- und EML-Dateien jeder Größe, vollständig offline.