Przetwarzanie treści wiadomości e-mail za pomocą 7BIT Content-Transfer-Encoding - PHP

Ostatnio implementowałem niektóre funkcje obsługi poczty opartej na PHP / IMAP i większość z nich działa świetnie, z wyjątkiem dekodowania treści wiadomości (w niektórych okolicznościach).

Myślę, że do tej pory na wpół zapamiętałemRFC 2822 (Wytyczne dotyczące dokumentu „Internet Message Format”), przeczytaj kod obsługi poczty elektronicznej dla pół tuzina CMSów o otwartym kodzie źródłowym i przeczytaj bajillionowe posty na forum, posty na blogach itp. zajmujące się obsługą poczty w PHP.

Rozwijałem i całkowicie przepisałem klasę dla PHP,Imap, a klasa obsługuje e-maile całkiem dobrze - mam tam kilka pomocnych metod do wykrywania autoresponderów (dla nieobecnych, starych adresów itp.), dekodowania wiadomości base64 i 8bit itd.

Jednak jedyną rzeczą, której po prostu nie mogę wykonać niezawodnie (lub czasami w ogóle), jest wiadomość przychodzącaContent-Transfer-Encoding: 7bit.

Wydaje się, że różni klienci / usługi poczty elektronicznej interpretują7BIT oznaczać różne rzeczy. Dostałem kilka e-maili, które rzekomo są7BIT to sątak właściwie Zakodowane w Base64. Mam takie, które sątak właściwie kodowane-drukowane-kodowane. A niektóre nie są w żaden sposób zakodowane. Niektóre z nich są HTML, ale nie są oznaczone jako HTML, a także są wymienione jako7BIT...

Oto kilka przykładów (snips) treści wiadomości otrzymanych przy użyciu kodowania 7Bit:

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=

To sąwszystko wysyłane z kodowaniem „7Bit” (cóż, przynajmniej według PHP /imap_*), ale najwyraźniej potrzebują więcej dekodowania, zanim będę mógł je przekazać jako zwykły tekst. Czy jest jakiś sposób na niezawodne przekonwertowanie wszystkich wiadomości z rzekomo kodowanymi kodami 7Bit na tekst jawny?

questionAnswers(3)

yourAnswerToTheQuestion