Nejběžnější formát ukládání poštovních zpráv je formát mbox. MBOX znamená MailBOX. Mbox je jeden soubor obsahující nula nebo více poštovních zpráv.
Formát mbox
Použijeme-li formát mbox k ukládání e-mailů, umístíme je do jednoho souboru. To vytváří více či méně dlouhý textový soubor (internetová e-mailová adresa je vždy pouze jako 7-bitový ASCII text, vše ostatní - například přílohy - jsou kódovány), které obsahují jednu e-mailovou zprávu za druhou. Jak víme, kde končí a začíná druhá?
Naštěstí má každý e-mail na začátku nejméně jednu linku. Každá zpráva začíná písmenem "Od" (Z následuje znak bílé meze, nazývaný také řádek "From_"). Pokud tato sekvence ("Od") na začátku řádku předchází prázdný řádek nebo je v horní části souboru, našli jsme začátek zprávy.
Takže to, co hledáme při analýze souboru mbox, je v podstatě prázdný řádek následovaný "From".
Jako regulární výraz můžeme napsat " n nFrom. * N". Pouze první zpráva je jiná. Začíná to pouze "Od" na začátku řádku ("^ From. * N").
"Od" v těle
Co když se v těle e-mailové zprávy objeví přesně výše uvedená sekvence? Co když je část e-mailu?
- … ti posílám poslední zprávu.
- Z této zprávy nemusíte …
Zde máme prázdnou čárku, po níž následuje "Od" na začátku řádku. Pokud se to objeví v souboru mbox, nezanedbatelně máme začátek nové zprávy. Přinejmenším je to, co analyzátor myslí a proč oba e-mailové klienty a my bychom byli docela zmateni e-mailovou zprávou, která neobsahuje ani odesílatele, ani příjemce, ale začíná "Z této zprávy".
Abychom se vyhnuli takovým katastrofálním podmínkám, musíme se ujistit, že na začátku řádku po prázdném řádku v těle e-mailu se nikdy nezobrazí "Od".
Kdykoli do souboru mbox přidáme novou zprávu, hledáme takové sekvence v těle a jednoduše nahradíme "Od" "s"> Od ". To činí nesprávné interpretace nemožné. Níže uvedený příklad vypadá takto a spouštěcí syntakticky nespouští:
- … ti posílám poslední zprávu.
- > Z této zprávy nemusíte …
To je důvod, proč někdy najdete "> From" v e-mailu, kde byste očekávali pouhý "From".