2015-03-30 4 views
0

Мне нужно разобрать электронное письмо, которое, как представляется, закодировано с помощью utf-8, чтобы вытащить тему и отправителя и кусочки тела.Нужно разбирать электронную почту utf8 с perl

заголовке части не проблема, но тело выглядит следующим образом:

LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t 
LS0tLS0tLS0tLS0tLS0tLS0tLS0KRmVkb3JhIFVwZGF0ZSBOb3RpZmljYXRpb24KRkVET1JB 
MTUtNDQ1NwoyMDE1LTAzLTIzIDAyOjM5OjI1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t 
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpO 
ICAgICAgICA6IGtlcm5lbApQcm9kdWN0ICAgICA6IEZlZG9yYSAyMQpWZXJzaW9uICAgICA6 
MTkuMgpSZWxlYXNlICAgICA6IDIwMS5mYzIxClVSTCAgICAgICAgIDogaHR0cDovL3d3dy5r 
ZWwub3JnLwpTdW1tYXJ5ICAgICA6IFRoZSBMaW51eCBrZXJuZWwKRGVzY3JpcHRpb24gOgpU 
Z2VybmVsIG1ldGEgcGFja2FnZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t 
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVXBkYXRlIElu 
... 

Alpine, по-видимому расшифровать его должным образом, и говорит мне:

[ The following text is in the "utf-8" character set. ] 
[ Your display is set for the "ANSI_X3.4-1968" character set. ] 
[ Some characters may be displayed incorrectly. ] 

Какой PERL модуль можно использовать для это? Надеюсь, этого достаточно, чтобы помочь.

Я вижу модули для создания MIME-кодированных сообщений, но как их декодировать и читать? Нужен ли мне модуль для этого конкретного типа кодирования?

+0

Ваш адрес электронной почты будет содержать строку, описывающую тип MIME. Что он говорит? – Sobrique

+0

использовать [Mime :: Tools] (https://metacpan.org/release/MIME-tools), особенно класс [Mime :: Parser] (https://metacpan.org/pod/MIME::Parser). –

+0

В нем говорится следующее: 'Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: base64' –

ответ

0

Существует несколько кодировок, происходящих здесь на основе типа Content в комментариях. Тело было закодировано в Base-64, что позволяет электронной почте представлять произвольные данные как ASCII. Другая заключается в том, что данные под кодировкой Base64 кодируют UTF-8.

Что-то вроде Email::MIME должно быть в состоянии справиться с этим, не беспокоясь о деталях.

Смежные вопросы