Das mbox Format

So speichern E-Mail-Clients E-Mails auf Ihrer Festplatte

Das gebräuchlichste Format zum Speichern von E-Mail-Nachrichten ist das Mbox-Format. MBOX steht für MailBOX. Eine mbox ist eine einzelne Datei, die keine oder mehrere E-Mail-Nachrichten enthält.

Das mbox Format

Wenn wir das mbox-Format zum Speichern von E-Mails verwenden, speichern wir alle in einer Datei. Dadurch wird eine mehr oder weniger lange Textdatei erstellt (Internet-E-Mail besteht immer nur aus 7-Bit-ASCII-Text, alles andere - beispielsweise Anhänge - wird verschlüsselt), die eine E-Mail-Nachricht nach der anderen enthält. Woher wissen wir, wo eine endet und eine andere beginnt?

Glücklicherweise hat jede E-Mail am Anfang mindestens eine From-Zeile. Jede Nachricht beginnt mit "Von" (Von gefolgt von einem Leerzeichen, auch "Von_" -Zeile genannt). Wenn dieser Sequenz ("Von") am Anfang einer Zeile eine Leerzeile vorausgeht oder sich am Anfang der Datei befindet, haben wir den Anfang einer Nachricht gefunden.

Was wir also beim Parsen einer mbox-Datei suchen, ist im Wesentlichen eine leere Zeile, gefolgt von "Von".

Als regulärer Ausdruck können wir dies als "nnFrom. * N" schreiben. Nur die allererste Nachricht ist anders. Es beginnt lediglich mit "Von" am Anfang einer Zeile ("^ Von. * N").

"From" im Körper

Was ist, wenn genau die oben angegebene Reihenfolge im Text einer E-Mail-Nachricht enthalten ist? Was ist, wenn Folgendes Teil einer E-Mail ist?

  • ... Ich sende Ihnen den neuesten Bericht.
  • Von diesem Bericht brauchen Sie nicht ...

Hier haben wir eine leere Zeile gefolgt von "Von" am Anfang der Zeile. Wenn dies in einer Mbox-Datei erscheint, haben wir unmissverständlich den Beginn einer neuen Nachricht. Zumindest denkt der Parser das und warum sowohl der E-Mail-Client als auch wir durch eine E-Mail-Nachricht, die weder Absender noch Empfänger enthält, sondern mit "Aus diesem Bericht" beginnt, ziemlich verwirrt sind.

Um solche katastrophalen Zustände zu vermeiden, müssen wir sicherstellen, dass "Von" niemals am Anfang einer Zeile nach einer leeren Zeile im Hauptteil einer E-Mail erscheint.

Immer wenn wir einer mbox-Datei eine neue Nachricht hinzufügen, suchen wir nach solchen Sequenzen im Hauptteil und ersetzen einfach "Von" durch "> Von". Dies macht Fehlinterpretationen unmöglich. Das obige Beispiel sieht nun so aus und löst den Parser nicht mehr aus:

  • ... Ich sende Ihnen den neuesten Bericht.
  • > Aus diesem Bericht müssen Sie nicht ...

Aus diesem Grund finden Sie in einer E-Mail manchmal "> Von", wenn Sie lediglich ein "Von" erwarten.