17.1. ¿Qué es un mensaje de correo?

Un mensaje de correo consta de un cuerpo, que es el texto que ha escrito el remitente, y datos especiales que especifican el destinatario o destinatarios, el medio de transporte, etc., de manera similar a lo que aparece en el sobre de una carta ordinaria.

Estos datos administrativos se clasifican en dos categorías; en la primera categoría están los datos que son específicos del medio de transporte, como son las direcciones del remitente y del destinatario. A esto se le llama el sobre (envelope). Puede ser modificado por el software de transporte a medida que el mensaje se transmite.

La segunda categoría es cualquier dato necesario para la manipulación del mensaje, que no es propio de ningún mecanismo de transporte, como es la línea del encabezado en la que indicamos el tema del mensaje (Subject), la lista de todos los destinatarios, y la fecha en la que se envió el mensaje. En muchas redes, se ha convertido en un estándar incluir estos datos al comienzo del mensaje, formando lo que se denomina cabecera del mensaje (mail header). Se separa del cuerpo del mensaje (mail body) por una línea en blanco.[1]

La mayoría del software para transporte de correo que se emplea en el mundo Unix usa un formato de cabecera definido en el RFC 822. Su propósito original era especificar un estándar para usar en la ARPANET, pero dado que fue diseñado para ser independiente del entorno de uso, ha sido adaptado fácilmente a otras redes, incluyendo muchas basadas en UUCP.

Pero RFC 822 es sólo el mínimo común denominador. Otros estándares más recientes han sido concebidos para dar respuesta a las crecientes necesidades como pueden ser, por ejemplo, encriptación de datos, soporte de conjuntos de caracteres internacionales, y MIME (Multipurpose Internet Mail Extensions, Extensiones de Correo Multipropósito, descritas en el RFC-1341 y otros RFCs).

En todos esos estándares, la cabecera consiste en varias líneas, separadas por caracteres de retorno de carro. Cada línea consiste en un nombre de campo, que comienza en la columna uno, y el campo en sí, separados por dos puntos (:) y un espacio. El formato y la semántica de cada campo varía dependiendo del nombre del mismo. Un campo de al cabecera se puede continuar más allá de una línea, si la línea siguiente comienza con un carácter de espacio, como puede ser un tabulador. Los campos pueden aparecer en cualquier orden.

Una cabecera de correo típico puede ser algo así:
    Return-Path: <ph10@cus.cam.ac.uk>
    Received: ursa.cus.cam.ac.uk (cusexim@ursa.cus.cam.ac.uk [131.111.8.6])
        by al.animats.net (8.9.3/8.9.3/Debian 8.9.3-6) with ESMTP id 
    WAA04654
        for <terry@animats.net>; Sun, 30 Jan 2000 22:30:01 +1100
    Received: from ph10 (helo=localhost) by ursa.cus.cam.ac.uk with 
    local-smtp
        (Exim 3.13 #1) id 12EsYC-0001eF-00; Sun, 30 Jan 2000 11:29:52 +0000
    Date: Sun, 30 Jan 2000 11:29:52 +0000 (GMT)
    From: Philip Hazel <ph10@cus.cam.ac.uk>
    Reply-To: Philip Hazel <ph10@cus.cam.ac.uk>
    To: Terry Dawson <terry@animats.net>, Andy Oram 
    <andyo@oreilly.com>
    Subject: Electronic mail chapter
    In-Reply-To: <38921283.A58948F2@animats.net>
    Message-ID: 
    <Pine.SOL.3.96.1000130111515.5800A-200000@ursa.cus.cam.ac.uk>

Usualmente, todos los campos de la cabecera necesarios son generados por el interfaz de correo que usted use, como elm, pine, mush, o mailx. Algunos, sin embargo, son opcionales y pueden ser añadidos por el usuario. elm, por ejemplo, permite editar parte del encabezado del mensaje. Otros campos son añadidos por el software de transporte de correo. Si usted mira el fichero donde se almacena el correo local, puede ver que cada mensaje está precedido por una línea “From” (nota: sin dos puntos). Esta no es una cabecera RFC-822; ha sido insertada por su software de correo para facilitar la lectura a los programas que usen ese fichero. Para prevenir potenciales problemas con las líneas del cuerpo del mensaje que también empiecen por “From,” se ha convertido en un procedimiento estándar evitar estas ocurrencias poniendo antes un carácter >.

Esta lista es una colección de cabeceras de campos comunes, y sus significados:

From:

Contiene la dirección de correo electrónico del remitente, y posiblemente el “nombre real”. Aquí se usa un zoológico completo de formatos distintos.

To:

Esta es la dirección de e-mail del destinatario. Si hay varias direcciones se separan por comas.

Cc:

Esta es una lista de las direcciones de correo que recibirán una “copia de carbón” del mensaje. Si hay varias direcciones, se separan por comas.

Bcc:

Esta es una lista de las direcciones de correo que recibirán una “copia de carbón ciega” del mensaje. La diferencia principal entre “Cc:” y “Bcc:” es que las direcciones listadas en el “Bcc:” no aparecerán en la cabecera del mensaje que se envía a cada destinatario. Es una forma de avisar a los destinatarios de que usted ha enviado copias del mensaje a otras personas, sin decir quiénes son. Si hay varias direcciones, se separan por comas.

Subject:

Describe el contenido del mensaje en pocas palabras.

Date:

Indica la fecha y hora en que se envió el mensaje.

Reply-To:

Especifica la dirección a la que el remitente desea que el destinatario le conteste. Esto puede ser útil si se tienen varias direcciones, pero se desea recibir la mayor parte del correo sólo en aquella que se usa más a menudo. Este campo es opcional.

Organization:

La organización que posee la máquina desde la que se ha enviado el mensaje. Si la máquina usada es la suya propia no incluya este campo, o bien indique “privado” o cualquier trivialidad sin sentido. Este campo no está descrito en ningún RFC y es completamente opcional. Algunos programas de correo lo soportan directamente, pero la mayoría no.

Message-ID:

Una cadena generada por el transporte de correo en el sistema remitente. Es única para cada mensaje.

Received:

Cada anfitrión que procesa su correo (incluyendo las máquinas del remitente y el destinatario) insertan este campo en el encabezado, dando el nombre del anfitrión, una identificación de mensaje, hora y fecha a la que lo recibieron, de qué anfitrión procede, y qué software de transporte ha sido usado. Esto se hace así para que usted pueda conocer la ruta que su mensaje ha seguido, y pueda protestar a la persona responsable si algo ha ido mal.

X-cualquier-cosa:

Ningún programa relacionado con el correo debe protestar sobre cualquier encabezado que comience con X-. Esto se usa para implementar características adicionales que aún no han sido incluidas en un RFC, o que no lo serán nunca. Por ejemplo, existió un gran servidor de listas de correo de GNU/Linux que permitía especificar a qué canal quería que fuera su mensaje incluyendo la cadena X-Mn-Key: seguido del nombre del canal.

Notas

[1]

Se suele añadir una firma (signature) o .sig a un mensaje, que normalmente contiene información sobre el autor, junto con un chiste o cita célebre. Se separa del resto del mensaje con una línea que contiene “--” seguido por un espacio.