Análisis del cuerpo del correo electrónico con codificación de transferencia de contenido 7BIT - PHP

He implementado algunas funciones de manejo de correo electrónico basadas en PHP / IMAP últimamente, y casi todo funciona de maravilla, excepto la decodificación del cuerpo del mensaje (en algunas circunstancias).

Creo que, a estas alturas, ya lo he memorizado a medias.RFC 2822 (las directrices del documento 'Formato de mensaje de Internet'), lea el código de manejo de correo electrónico para media docena de CMS de código abierto, y lea una gran cantidad de publicaciones en foros, publicaciones de blogs, etc. relacionadas con el manejo de correo electrónico en PHP.

También he bifurcado y reescrito completamente una clase para PHP,Imapy la clase maneja el correo electrónico respetablemente bien: tengo algunos métodos útiles para detectar respuestas automáticas (para fuera de la oficina, direcciones antiguas, etc.), decodificar mensajes de base64 y 8 bits, etc.

Sin embargo, la única cosa que simplemente no puedo trabajar de manera confiable (o, a veces, en absoluto) es cuando llega un mensaje conContent-Transfer-Encoding: 7bit.

Parece que diferentes clientes / servicios de correo electrónico interpretan7BIT significar cosas diferentes. He recibido algunos correos que supuestamente son7BIT que sonactualmente Base64-codificado. He conseguido algunos que sonactualmente citado-imprimible-codificado. Y algunos que no están codificados de ninguna manera. Y algunos que son HTML, pero no se indican como HTML, y también se enumeran como7BIT...

Aquí hay algunos ejemplos (recortes) de cuerpos de mensajes recibidos con codificaciones de 7 bits:

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=

Estos sontodos enviado con codificaciones '7Bit' (bueno, al menos de acuerdo con PHP /imap_*), pero obviamente necesitan más decodificación antes de que pueda pasarlos como texto sin formato. ¿Hay alguna forma de convertir de forma confiable todos los mensajes con codificaciones supuestamente de 7 bits a texto sin formato?

Respuestas a la pregunta(3)

Su respuesta a la pregunta