Разбор сообщения электронной почты с помощью 7BIT Content-Transfer-Encoding - PHP

В последнее время я реализую некоторые функции обработки электронной почты на основе PHP / IMAP, и у меня почти все работает отлично, за исключением декодирования тела сообщения (в некоторых случаях).

Я думаю, что к настоящему времени я наполовину запомнилRFC 2822 (руководство к документу «Формат интернет-сообщений»), прочитайте код обработки электронной почты для полдюжины CMS с открытым исходным кодом, прочитайте сообщения на форуме, в блогах и т. д., касающиеся обработки электронной почты в PHP.

Я также разветвил и полностью переписал класс для PHP,Imapи класс обрабатывает электронную почту довольно хорошо; у меня есть несколько полезных методов для обнаружения автоответчиков (для отсутствия на работе, старых адресов и т. д.), декодирования сообщений base64 и 8-битных и т. д.

However, the one thing I simply can't get to work reliably (or, sometimes, at all) is when a message comes in with Content-Transfer-Encoding: 7bit.

Кажется, что разные почтовые клиенты / сервисы интерпретируют7BIT означать разные вещи. Я получил несколько писем, которые предположительно7BIT которыеactually Кодировка Base64. Я получил несколькоactually кавычко для печати кодируемых. И некоторые, которые не закодированы каким-либо образом вообще. Некоторые из них являются HTML, но не обозначены как HTML, и они также перечислены как7BIT...

Вот несколько примеров (фрагментов) тел сообщений, полученных с 7-битной кодировкой:

1:

A random message=20

Sent from my iPhone

2:

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwi
IHhtbG5zOm89InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9m

3:

tangerine apricot pepper.=0A=C2=A0=0ALet me know if you have any availabili=
ty over the next month or so. =0A=C2=A0=0AThank you,=0ANames Withheld=0A908=
-319-5916=0A=C2=A0=0A=C2=A0=0A=C2=A0=0A=0A=0A______________________________=
__=0AFrom: Names Witheld =0ATo: Names Withheld=

Этоall отправлено с «7Bit»; кодировки (ну, по крайней мере, в соответствии с PHP /imap_*), но они, очевидно, нуждаются в дополнительной расшифровке, прежде чем я смогу передать их в виде открытого текста. Есть ли способ надежно преобразовать все сообщения с якобы 7-битной кодировкой в открытый текст?

Ответы на вопрос(3)

Ваш ответ на вопрос