Det mest almindelige format til opbevaring af mailbeskeder er mbox-formatet. MBOX står for MailBOX. En mbox er en enkelt fil, der indeholder nul eller flere mailbeskeder.
Mbox formatet
Hvis vi bruger mbox formatet til at gemme e-mails, sætter vi dem alle i en fil. Dette skaber mere eller mindre lang tekstfil (internet e-mail eksisterer altid kun som 7-bit ASCII-tekst, alt andet - vedhæftede filer, for eksempel - er kodet) indeholder en e-mail-besked efter den anden. Hvordan ved vi, hvor en ender og en anden begynder?
Heldigvis har hver e-mail mindst en fra-linie i starten. Hver besked begynder med "Fra" (Fra efterfulgt af et hvidt mellemrum, kaldes også en "From_" linje). Hvis denne sekvens ("Fra") i begyndelsen af en linje går forud for en tom linje eller er øverst i filen, har vi fundet begyndelsen af en besked.
Så hvad vi ser efter, når vi analyserer en mbox-fil, er i det væsentlige en tom linje efterfulgt af "Fra".
Som et regulært udtryk kan vi skrive dette som " n nFrom. * N". Kun den allerførste besked er anderledes. Den starter kun med "Fra" i begyndelsen af en linje ("^ Fra. * N").
"Fra" i kroppen
Hvad nu hvis nøjagtigheden ovenfor ses i en email-besked? Hvad hvis følgende er en del af en e-mail?
- … Jeg sender dig den seneste rapport.
- Fra denne rapport behøver du ikke …
Her har vi en tom linje efterfulgt af "Fra" i starten af linjen. Hvis dette vises i en mbox-fil, har vi umiskendeligt starten på en ny besked. I det mindste er det, hvad parseren mener, og hvorfor både e-mail-klienten og vi ville være helt forvirrede af en e-mail-besked, der indeholder hverken afsender eller modtager, men begynder med "Fra denne rapport."
For at undgå sådanne katastrofale forhold må vi sørge for, at "Fra" aldrig vises i starten af en linje efter en tom linje i emnet.
Når vi tilføjer en ny besked til en mbox-fil, ser vi efter sådanne sekvenser i kroppen og erstatter simpelthen "Fra" med "> Fra". Dette gør fejlfortolkninger umulige. Eksemplet ovenfor ser nu ud som dette og udløser ikke mere parseren:
- … Jeg sender dig den seneste rapport.
- > Fra denne rapport behøver du ikke …
Derfor kan du undertiden finde "> Fra" i en e-mail, hvor du kun kan forvente "Fra".