El formato más común para el almacenamiento de mensajes de correo es el formato mbox. MBOX son las siglas de MailBOX. Un mbox es un único archivo que contiene cero o más mensajes de correo.
El formato mbox
Si usamos el formato mbox para almacenar correos electrónicos, los ponemos todos en un solo archivo. Esto crea un archivo de texto más o menos largo (el correo electrónico de Internet siempre existe sólo como texto ASCII de 7 bits, todo lo demás, por ejemplo, los archivos adjuntos, está codificado) que contiene un mensaje de correo electrónico tras otro. ¿Cómo sabemos dónde termina uno y dónde comienza el otro?
Afortunadamente, cada correo electrónico tiene al menos un From-line al principio. Cada mensaje comienza con «De» (De seguido de un espacio en blanco, también llamado línea «De_»). Si esta secuencia («De») al principio de una línea está precedida por una línea vacía o está en la parte superior del archivo, hemos encontrado el principio de un mensaje.
Así que lo que buscamos cuando analizamos un archivo mbox es, esencialmente, una línea vacía seguida de «De».
Como una expresión regular, podemos escribir esto como «Desde .*». Sólo el primer mensaje es diferente. Comienza simplemente con «From» al principio de una línea («^From.*»).
«De » en el cuerpo
¿Qué pasa si exactamente la secuencia anterior aparece en el cuerpo de un mensaje de correo electrónico? ¿Qué pasa si lo siguiente es parte de un correo electrónico?
- …Les envío el informe más reciente.
- A partir de este informe, no es necesario…
Aquí tenemos una línea vacía seguida de «De» al principio de la línea. Si esto aparece en un archivo mbox, sin duda tenemos el comienzo de un nuevo mensaje. Al menos eso es lo que piensa el analizador y por qué tanto el cliente de correo electrónico como nosotros estaríamos bastante confundidos por un mensaje de correo electrónico que no contiene ni remitente ni destinatario pero que comienza con «De este informe».
Para evitar tales condiciones desastrosas, necesitamos asegurarnos de que «De» nunca aparezca al principio de una línea siguiendo una línea vacía en el cuerpo de un correo electrónico.
Cada vez que añadimos un nuevo mensaje a un archivo mbox, buscamos tales secuencias en el cuerpo y simplemente reemplazamos «De» por «>De». Esto hace que las interpretaciones erróneas sean imposibles. El ejemplo anterior ahora se ve así y ya no activa el analizador:
- …Les envío el informe más reciente.
- >De este informe, no necesita…
Es por eso que a veces se puede encontrar «De» en un correo electrónico en el que se espera un mero «De».