Tecnología

Inicio

Cómo descifrar un correo electrónico en el formato MIME

La mayoría de los correos electrónicos enviados hoy son MIME (Multipupose Internet Mail Extensions) con formato. Esto permite que los correos electrónicos que se envíen con texto sin formato y texto enriquecido / versiones HTML, las imágenes en línea y los archivos adjuntos. extensiones MIME se pueden añadir a un mensaje en formato estándar RFC / 822 así que la compatibilidad hacia atrás se consigue con los sistemas de correo de más edad.

Instrucciones

1 Cargar el contenido del mensaje de correo electrónico.

2 Compruebe el "Content-Type" de cabecera. Si el tipo de contenido es multipart (es decir, "multipart / mixed", "multipart / alternative", etc), el mensaje tiene varias secciones para analizar. Si el tipo de contenido es multipart, continúe con los pasos siguientes.

3 La cabecera Content-Type debe contener una cadena única que utiliza el código que ha generado el mensaje MIME MIME para designar los límites de piezas. Ejemplo:

Content-Type: multipart / mixed;

boundary="part_c7161025_fe8a_45f4_83ef_6befcfa5d021"

La serie de límite en este caso es "part_c7161025_fe8a_45f4_83ef_6befcfa5d021".

4 Cada parte MIME será separado por la serie de límite precedida de dos guiones ( "-") en una línea en blanco. Usted tendrá que escanear la línea de mensajes por la línea en busca de los límites de piezas. Todo el texto en el medio de los

límites, excepto la final CR / LF es parte de la parte MIME.

Importante: La última parte MIME terminará con la serie de límite seguido de dos guiones más.

Ejemplo:

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021
Primera parte MIME.

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021
Segunda parte MIME

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021
parte MIME pasado.

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021--

5 Cada parte MIME luego tiene que ser analizada. El formato de cada parte MIME es similar al mensaje original 822 RFC / formateado. Contendrá una serie de cabeceras, seguida de una línea en blanco, a continuación, los datos del cuerpo.

6 Una parte MIME puede ser en sí mismo de varias partes, con su propia "Content-Type" de cabecera y serie de límite. El código debe analizar de forma recursiva partes MIME hasta que llega a los nodos secundarios.

7 Una parte MIME puede ser simplemente un archivo adjunto binario. En este caso por lo general se suministra un encabezado Nombre de archivo, junto con la codificación de transferencia. BASE64 es un popular tipo de codificación. En este caso, toda la parte del cuerpo MIME debe ser decodificado BASE64. A modo de ejemplo, aquí están las primeras líneas de una imagen JPG adjunto:

------_ = _ NextPart_003_01C755EF.43F2628D
Content-Type: image / jpeg;

name="testimage.jpg"

Content-Transfer-Encoding: base64
Contenido-Descripción: testimage.jpg
Content-Disposition: attachment;

filename="testimage.jpg"

/ 9J / 4AAQSkZJRgABAQEAYABgAAD / 2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL / 2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL / wAARCAQABQQDASIA
AhEBAxEB / 8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL / 8QAtRAAAgEDAwIEAwUFBAQA

8 El cuerpo HTML del mensaje debe estar en una sección MIME con ContentType: text / html, dentro de una ContentType: sección de varias / MIME alternativa.

9 El cuerpo de texto del mensaje debe estar en una sección MIME con ContentType: text / plain, dentro de una ContentType: sección de varias / MIME alternativa.

Consejos y advertencias

  • Consulte RFC 822 y RFC 1341 http://www.ietf.org/rfc/rfc0822.txt?number=822 http://www.ietf.org/rfc/rfc1341.txt?number=1341 para más información.
  • Si está codificando en C #, una excelente biblioteca gratuita está disponible en http://www.codeproject.com/csharp/mime_project.asp.