PHP:Gmail的邮件包含无效的HTML和随机行话

Ble*_*der 7 php gmail tidy gmail-imap

我正在使用PHP创建基于电子邮件的CMS,我需要使用Gmail作为电子邮件服务.这个脚本现在非常简单,我遇到的唯一问题是处理Gmail的电子邮件语法.

在收到电子邮件时,我期待一些更容易管理的东西,比如这样:

<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.
Run Code Online (Sandbox Code Playgroud)

但我得到了这个(鸭子和封面):

<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>
Run Code Online (Sandbox Code Playgroud)

我尝试过Tidy,但它无法处理Gmail的链接和"换行符".休息时间刚刚=结束,这完全搞乱了Tidy,有时候(我认为是随机的)链接就像这样:中间的<a href=3D"http://asfasfafs">asfasf</a>那些=\n!

我如何训练Tidy处理这种亵渎神灵的HTML并输出一些我可以直接进入<div>网站内部的东西?

谢谢!

Dav*_*har 10

这看起来像是quoted-printable编码.您应该检查邮件的"Content-Transfer-Encoding:"标题行,以查看是否存在任何编码(例如base-64或quoted-printable)并在尝试解析内容之前删除编码.