Pega el código fuente completo de un correo - cabeceras y cuerpo - y velo desglosado: cada cabecera, la estructura MIME, la codificación de transferencia y el charset de cada parte, el cuerpo text/HTML decodificado y cualquier adjunto. Todo funciona en tu navegador; no se sube nada.
Cada correo que recibes es, por debajo, un documento de texto plano que sigue una estructura estricta definida por MIME (Multipurpose Internet Mail Extensions) y el formato de mensaje más antiguo RFC 5322. Cuando abres el “código fuente en bruto” o un archivo .eml guardado, esa estructura se hace visible: un bloque de cabeceras, una línea en blanco y luego el cuerpo. Este decodificador divide cualquier mensaje que pegues en esas piezas — cabeceras, el árbol MIME, la codificación de transferencia y el charset de cada parte, el text/HTML decodificado y cada adjunto — enteramente en tu navegador. No se sube nada a ningún servidor; el análisis se ejecuta en tu propio ordenador.
Un mensaje tiene dos secciones separadas por la primera línea vacía:
Header-Name: valor de la cabecera Another-Header: otro valor (una línea de continuación plegada) <línea en blanco> El cuerpo empieza aquí…
Dos reglas suelen confundir al leer el código fuente en bruto:
=?charset?B?…?= (Base64) o =?charset?Q?…?= (una variante de quoted-printable). Por ejemplo, =?UTF-8?Q?caf=C3=A9?= se decodifica como café. El decodificador de arriba muestra el valor legible; el valor en bruto es lo que realmente viaja por la red.Estas son las variables que verás en la parte superior de casi cualquier mensaje. No todas están siempre presentes.
| Cabecera | Qué significa |
|---|---|
From | El autor mostrado al lector — un nombre visible y una dirección, p. ej. Anna <anna@example.com>. Esto es lo que muestra tu cliente de correo; no es prueba de quién envió realmente el correo (véase SPF/DKIM más abajo). |
To, Cc | Destinatarios principales y en copia. Son cabeceras puramente informativas — la entrega real la determina el sobre SMTP, no ellas. |
Bcc | Copia oculta. Normalmente se elimina antes de la entrega, así que rara vez la ves en el correo recibido. |
Reply-To | A dónde deben ir las respuestas si eso difiere de From (p. ej. un remitente “no-reply” que dirige las respuestas a soporte). |
Return-Path | El remitente del sobre (la dirección “MAIL FROM”) a donde se envían los rebotes. Lo añade el servidor receptor y a menudo difiere de From. |
Sender | El agente real que envió el mensaje cuando no es el autor (listas de correo, “en nombre de”). |
Message-ID | Un identificador único a nivel global para este mensaje, como <a1b2c3@example.com>. Se usa para agrupar en hilos y eliminar duplicados. |
| Cabecera | Qué significa |
|---|---|
Subject | La línea del tema. A menudo es un encoded-word cuando contiene caracteres no ASCII. |
Date | Cuándo envió el autor el mensaje, con un desfase de zona horaria, p. ej. Wed, 9 Jul 2026 10:15:00 +0000. |
In-Reply-To | El Message-ID al que responde este mensaje — permite a los clientes construir hilos de conversación. |
References | La cadena de Message-IDs anteriores del hilo. |
| Cabecera | Qué significa |
|---|---|
Received | Una línea de rastreo que añade cada servidor de correo por el que pasó el mensaje, la más reciente arriba. Leerlas de abajo hacia arriba muestra la ruta de entrega y las marcas de tiempo. |
DKIM-Signature | Una firma criptográfica que permite al receptor confirmar que el mensaje fue enviado realmente por el dominio y no se alteró en tránsito. |
Authentication-Results | El veredicto del servidor receptor sobre las comprobaciones de SPF, DKIM y DMARC (pass/fail). Una forma rápida de juzgar si un “From” es de fiar. |
Received-SPF | Si la IP remitente está autorizada a enviar en nombre del dominio del sobre. |
List-Unsubscribe | Para correo masivo/boletines: la dirección o URL que usa un cliente para darse de baja con un solo clic. |
Estas pocas cabeceras controlan toda la estructura del cuerpo. Son las variables que más le importan a este decodificador.
| Variable | Qué hace |
|---|---|
MIME-Version: 1.0 | Declara que el mensaje usa MIME. En la práctica, siempre 1.0. |
Content-Type | La variable más importante de todas: el tipo de medio de una parte (text/plain, text/html, image/png, application/pdf, multipart/*…). Lleva parámetros tras los puntos y comas. |
charset | Un parámetro de un Content-Type de texto: la codificación de caracteres del texto, p. ej. charset="UTF-8". Necesario para volver a convertir los bytes en las letras correctas. |
boundary | Un parámetro de un tipo multipart: una cadena marcadora única. Cada parte empieza con --boundary y la última termina con --boundary--. |
Content-Transfer-Encoding | Cómo se empaquetaron los bytes de la parte para que sobrevivan como texto de 7 bits por la red (véase la tabla de abajo). |
Content-Disposition | inline (mostrarlo dentro del mensaje) o attachment (ofrecerlo como un archivo). Suele llevar un parámetro filename. |
name / filename | El nombre de archivo sugerido de un adjunto, en Content-Type y Content-Disposition respectivamente. |
Content-ID | Un identificador para una parte inline (p. ej. una imagen) para que el cuerpo HTML pueda referenciarla con cid:. |
multipart/alternative — el mismo mensaje en dos formas: una alternativa text/plain y una versión text/html. El cliente muestra la más rica que pueda.multipart/mixed — un cuerpo más adjuntos agrupados juntos.multipart/related — una parte HTML junto con las imágenes inline que referencia por Content-ID.Estos se anidan: un mensaje real suele ser un multipart/mixed que contiene un multipart/alternative (texto + HTML) junto a un adjunto PDF. El decodificador muestra esto como un árbol numerado (1, 1.1, 1.2…).
| Valor | Significado |
|---|---|
7bit | ASCII simple, nada cambiado. El valor por defecto cuando no se indica ninguna codificación. |
8bit | Los bytes por encima de 127 se usan directamente (necesita un canal limpio de 8 bits). |
binary | Bytes arbitrarios, sin límites de longitud de línea — raro en el correo normal. |
quoted-printable | Texto en su mayoría legible donde los bytes no ASCII se convierten en =XX hexadecimal (y un = al final de línea es un salto suave). Bueno para texto que es mayormente inglés con algunos acentos. |
base64 | Cualquier byte recodificado en un alfabeto seguro de 64 caracteres, ~33% más grande. Se usa para imágenes, PDF y otros adjuntos binarios. |
El decodificador revierte la codificación que se haya usado y luego aplica el charset de la parte, para que el texto vuelva legible y los adjuntos vuelvan como sus bytes originales (que puedes descargar).
Pulsa “Cargar un ejemplo” arriba para cargar un mensaje pequeño y verlo decodificado. Su esqueleto tiene este aspecto:
Subject: =?UTF-8?Q?Meeting_notes_=E2=80=93_caf=C3=A9?= ← encoded-word MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="OUTER" --OUTER Content-Type: multipart/alternative; boundary="INNER" --INNER Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable ← parte de texto ... --INNER Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 ← alternativa HTML ... --INNER-- --OUTER Content-Type: text/plain; name="notes.txt" Content-Disposition: attachment; filename="notes.txt" Content-Transfer-Encoding: base64 ← adjunto ... --OUTER--
Cómo leerlo: el tipo exterior es multipart/mixed, así que el cuerpo es “contenido + adjunto”. Su primer hijo es un multipart/alternative que contiene las versiones de texto plano y HTML de la misma nota; su segundo hijo es el adjunto notes.txt. El Subject es un encoded-word que se decodifica como “Meeting notes – café”.
Todo se queda en tu dispositivo. Esta herramienta analiza el mensaje con JavaScript en tu navegador — el correo en bruto nunca se nos envía a nosotros ni a nadie más, y no se almacena nada. Puedes inspeccionar con seguridad mensajes privados o sensibles.
Una vez que sabes de qué servidor vino un mensaje, puedes profundizar: consulta la Consulta MX del dominio, lee cómo responde un servidor en la guía Comprobación SMTP con telnet, o comprueba si una dirección es entregable con el Comprobador de correo.