O formato mais comum para o armazenamento de mensagens de correio é o formato mbox. MBOX significa MailBOX. Uma mbox é um único arquivo contendo zero ou mais mensagens de correio.
O formato mbox
Se usarmos o formato mbox para armazenar emails, colocamos todos eles em um único arquivo. Isso cria um arquivo de texto mais ou menos longo (o email da Internet sempre existe apenas como texto ASCII de 7 bits, todo o resto - anexos, por exemplo - é codificado) contendo uma mensagem de email após a outra. Como sabemos onde um termina e outro começa?
Felizmente, cada e-mail tem pelo menos uma linha de saída desde o início. Toda mensagem começa com "De" (De seguido por um caractere de espaço em branco, também chamado de linha "De_"). Se essa sequência ("De") no início de uma linha for precedida por uma linha vazia ou estiver no topo do arquivo, encontramos o início de uma mensagem.
Então, o que procuramos ao analisar um arquivo mbox é, essencialmente, uma linha vazia seguida por "De".
Como uma expressão regular, podemos escrever isto como " n nA partir de. * N". Apenas a primeira mensagem é diferente. Começa apenas com "De" no início de uma linha ("^ De. * N").
"De" no corpo
E se exatamente a seqüência acima aparecer no corpo de uma mensagem de email? E se o seguinte fizer parte de um email?
- … envio-lhe o relatório mais recente.
- A partir deste relatório, você não precisa …
Aqui, temos uma linha vazia seguida de "De" no início da linha. Se isso aparecer em um arquivo mbox, temos inequivocamente o início de uma nova mensagem. Pelo menos é o que o analisador pensa e por que tanto o cliente de email quanto nós ficamos bastante confusos com uma mensagem de email que não contém remetente nem destinatário, mas começa com "Deste relatório".
Para evitar essas condições desastrosas, precisamos garantir que "De" nunca apareça no início de uma linha seguindo uma linha vazia no corpo de um e-mail.
Sempre que adicionamos uma nova mensagem a um arquivo mbox, procuramos por essas sequências no corpo e simplesmente substituímos "De" por "> De". Isso torna as interpretações erradas impossíveis. O exemplo acima agora se parece com isso e não mais aciona o analisador:
- … envio-lhe o relatório mais recente.
- > A partir deste relatório, você não precisa …
É por isso que às vezes você pode encontrar "> De" em um e-mail onde você esperaria um mero "De".