Originalmente (RFC 5322), el correo electrónico solo podía transportar texto plano (caracteres ASCII de 7 bits). Para permitir el envío de archivos, imágenes y diversos idiomas, se adoptó el estándar MIME.
A. Estructura básica del mensaje
Un mensaje de correo consta de dos partes principales separadas por una línea en blanco:
Cabeceras (Headers): Metadatos técnicos (quién envía, quién recibe, fecha, asunto, ID del mensaje).
Cuerpo (Body): El contenido real del mensaje.
B. El estándar MIME (Multipurpose Internet Mail Extensions)
MIME permite que un mensaje sea "multimedia" mediante el uso de cabeceras especiales y el concepto de partes (boundaries).
Content-Type: Indica el tipo de contenido (ej:
text/plainpara texto simple,text/htmlpara formato web,image/jpegpara adjuntos).Content-Transfer-Encoding: Indica cómo se codifican los datos binarios para que puedan viajar por SMTP (que originalmente solo aceptaba texto). El uso de
base64es el más común para adjuntos, convirtiendo archivos binarios en una cadena de caracteres imprimibles.Boundaries (Límites): Son cadenas de texto únicas que actúan como "separadores" para dividir un mensaje en varias secciones (ej: el texto del cuerpo por un lado y el archivo adjunto por otro).
C. Cabeceras imprescindibles
From: Dirección del remitente.To: Dirección del destinatario.Subject: Asunto.Date: Marca de tiempo.Message-ID: Un identificador único global para ese correo específico.Received: Esta es una cabecera muy interesante; cada servidor de correo (MTA) por el que pasa el mensaje añade una cabeceraReceived. Si analizas un correo, puedes ver la "ruta" completa que siguió el mensaje desde el origen hasta tu buzón.
Reto para el alumno
Imagina que recibes un correo electrónico que contiene un documento PDF adjunto. Si abres el "código fuente" o "cabeceras originales" del mensaje en tu cliente de correo, verás una cadena larga de caracteres alfanuméricos después de Content-Transfer-Encoding: base64.
Pregunta: ¿Por qué es necesaria esta codificación
base64para enviar un PDF por correo, teniendo en cuenta que el protocolo SMTP tradicional tiene limitaciones sobre los datos que puede transportar?