Yleisin postiviestien tallennusmuoto on mbox-formaatti. MBOX tarkoittaa MailBOXia. Mbox on yksittäinen tiedosto, joka sisältää nollan tai useamman sähköpostiviestin.
Mbox-formaatti
Jos käytämme mbox-muotoa sähköpostiviestien tallentamiseen, laitamme ne kaikki yhteen tiedostoon. Tämä luo enemmän tai vähemmän pitkiä tekstitiedostoja (Internet-sähköposti on aina vain 7-bittinen ASCII-teksti, kaikki muut - liitetiedostot on koodattu), joka sisältää yhden sähköpostiviestin toisensa jälkeen. Kuinka tiedämme, mistä päättyy ja toinen alkaa?
Onneksi jokaisella sähköpostiosoitteella on ainakin yksi From-line alusta. Jokainen viesti alkaa "From" (Tällöin valkoinen tilahahmo, jota kutsutaan myös nimellä "From_"). Jos tämän rivin alussa oleva sarja ("From") edeltää tyhjä rivi tai on tiedoston yläosassa, olemme löytäneet viestin alun.
Joten mitä etsimme, kun jäsentää mbox-tiedosto on lähinnä tyhjä rivi, jota seuraa "From".
Säännöllisenä lausekkeena voimme kirjoittaa tämän nimellä " n nMuuta. * N". Ainoastaan ensimmäinen viesti on erilainen. Se alkaa vain riviltä "From" ("^ From. * N").
"Mistä" kehossa
Entä jos juuri yllä oleva sekvenssi ilmestyy sähköpostiviestin rungossa? Entä jos seuraava on osa sähköpostia?
- Lähetän sinulle viimeisimmän raportin.
- Tästä raportista ei tarvitse …
Tässä meillä on tyhjä rivi, jota seuraa "From" rivin alussa. Jos tämä näkyy mbox-tiedostossa, meillä on epäilemättä uusi viestin alku. Ainakin tämä on se, mitä parser käsittelee ja miksi sekä sähköpostiasiakkaat että me hämärättäisiin sähköpostiviestillä, joka ei sisällä lähettäjää eikä vastaanottajaa, mutta alkaa tästä "Tästä raportista".
Tällaisten katastrofaalisten olosuhteiden välttämiseksi meidän on varmistettava, että Lähettäjä ei koskaan näy rivin alussa, joka seuraa tyhjän rivin sähköpostin ruudussa.
Aina kun lisäämme uuden viestin mbox-tiedostoon, etsimme tällaisia sekvenssejä kehossa ja vaihdamme vain "From": stä "> From". Tämä tekee vääristä tulkinnoista mahdottomaksi. Yllä oleva esimerkki näyttää nyt tästä eikä enää käynnistä jäsentimen:
- Lähetän sinulle viimeisimmän raportin.
- > Tästä raportista ei tarvitse …
Siksi saatat joskus löytää "> Lähettäjä" -sähköpostissa, jossa voit odottaa pelkästään "From".