ver saber rastrear envio encabezado electronico donde desde correo como analizar perl email utf-8 header

perl - saber - ver encabezado de correo en hotmail



Decodificar un encabezado de correo electrónico UTF8 (5)

Creo que el módulo Encode maneja eso con la codificación MIME-Header , así que intente esto:

use Encode qw(decode); my $decoded = decode("MIME-Header", $encoded);

Tengo un correo electrónico sujeto al formulario:

=?utf-8?B?T3.....?=

El cuerpo del correo electrónico está codificado en utf-8 base64 y se ha decodificado correctamente. Estoy al día usando el módulo Perl''s Email :: MIME para decodificar el correo electrónico.

¿Cuál es el significado del delimitador =? Utf-8 y cómo extraigo información de esta cadena?


Echa un vistazo a RFC2047 . La ''B'' significa que la parte entre los dos últimos '''' '''' está codificada en base64. El ''utf-8'' naturalmente significa que los datos decodificados deben interpretarse como UTF-8.


Esta es una extensión estándar para el etiquetado de encabezados de conjunto de caracteres, especificado en RFC2047 .


Los tokens de encoded-word (según RFC 2047 ) pueden aparecer en valores de algunos encabezados. Se analizan de la siguiente manera:

=?<charset>?<encoding>?<data>?=

Charset es UTF-8 en este caso, la codificación es B que significa base64 (la otra opción es Q que significa Quoted Printable).

Para leerlo, primero decodifique la base64, luego trátela como caracteres UTF-8.

Lea también las distintas RFCs de Internet Mail para obtener más detalles, principalmente RFC 2047 .

Como está utilizando Perl, Encode::MIME::Header podría ser útil:

SINOPSIS

use Encode qw/encode decode/; $utf8 = decode(''MIME-Header'', $header); $header = encode(''MIME-Header'', $utf8);

ABSTRACTO

Este módulo implementa RFC 2047 Mime Header Encoding. Hay 3 variantes de nombres de codificación; MIME-Header, MIME-B y MIME-Q. La diferencia se describe a continuación

decode() encode() MIME-Header Both B and Q =?UTF-8?B?....?= MIME-B B only; Q croaks =?UTF-8?B?....?= MIME-Q Q only; B croaks =?UTF-8?Q?....?=


MIME::Words de MIME-tools también funcionan bien para esto. Me encontré con algún problema con Encode y encontré que MIME :: Words tuvo éxito en algunas cadenas donde Encode no lo hizo.

use MIME::Words qw(:all); $decoded = decode_mimewords( ''To: =?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <[email protected]>'', );