2010-12-06 6 views
7

Estoy creando un CMS basado en correo electrónico con PHP, y estoy obligado a utilizar Gmail como servicio de correo electrónico. El guion es increíblemente simple por ahora, y el único problema que tengo es lidiar con la sintaxis del correo electrónico de Gmail.PHP: los mensajes de Gmail contienen un lenguaje HTML no válido y jerga aleatoria

me esperaba algo un poco más manejable, de esta manera, al conseguir un correo electrónico:

<u>asfasfasf</u> <u style="font-style: italic;">asdfaf</u> <ustyle="font-style: italic; font-weight: bold;">asfsaf</u> asfasf <a href="http://asfasfafs">asfasf</a> 
<br /> 
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent sodales mauris quis nisl pellentesque eleifend. Sed convallis turpis quis turpis malesuada feugiat. Fusce sed metus non orci convallis congue. Integer egestas vulputate ipsum, sed fringilla velit elementum scelerisque. Pellentesque convallis metus sit amet enim faucibus adipiscing. 

Pero estoy este lugar (pato y cubierta):

<u>asfasfasf </u><u style=3D"font-style: italic; ">asdfaf =A0</u><u style= 
=3D"font-style: italic; font-weight: bold; ">asfsaf </u>asfasf <a href=3D"h= 
ttp://asfasfafs">asfasf</a><div><br></div><div><meta http-equiv=3D"content-= 
type" content=3D"text/html; charset=3Dutf-8"><span class=3D"Apple-style-spa= 
n" style=3D"font-family: Arial, Helvetica, sans; font-size: 11px; "><p styl= 
e=3D"text-align: justify; font-size: 11px; line-height: 14px; margin-top: 0= 
px; margin-right: 0px; margin-bottom: 14px; margin-left: 0px; padding-top: = 
0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "> 
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent sodales m= 
auris quis nisl pellentesque eleifend. Sed convallis turpis quis turpis mal= 
esuada feugiat. Fusce sed metus non orci convallis congue. Integer egestas = 
vulputate ipsum, sed fringilla velit elementum scelerisque. Pellentesque co= 
nvallis metus sit amet enim faucibus adipiscing.</p> 
</span> 

Intenté Tidy, pero no puede tratar con los enlaces de Gmail y los "saltos de línea". Las rupturas son solo = al final, lo que estropea completamente Tidy, y los enlaces son a veces (al azar, creo) así: <a href=3D"http://asfasfafs">asfasf</a>, ¡con esos =\n justo en el medio!

¿Cómo capacitaría a Tidy para tratar este tipo de HTML blasfemo y producir algo que pueda canalizar directamente en un <div> dentro de un sitio web?

Gracias!

Respuesta

10

que se parece a la codificación quoted-printable. Debería verificar la línea de encabezado "Content-Transfer-Encoding:" del mensaje para ver si hay alguna codificación presente (como base-64 o imprimible entre comillas) y eliminar la codificación antes de intentar analizar el contenido.

+0

¡Gracias! PHP * does * tiene una función para esto ('quoted_printable_decode()'). ¡Estoy jugando con eso ahora mismo y estoy obteniendo HTML válido! – Blender

Cuestiones relacionadas