PHP: сообщения Gmail содержат недопустимый HTML и случайный жаргон - PullRequest
7 голосов
/ 06 декабря 2010

Я создаю CMS на основе электронной почты с PHP и должен использовать 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.

Но я получаю это вместо этого (утка и обложка):

<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>

Я попробовал Tidy, но он не может справиться со ссылками Gmail и «переносами строк». Разрывы просто = в конце, что полностью запутывает Tidy, а ссылки иногда (на мой взгляд, наугад), например: <a href=3D"http://asfasfafs">asfasf</a>, с этими =\n прямо средний!

Как бы я научил Тиди обращаться с этим кощунственным HTML и выводить что-то, что я могу направить прямо в <div> внутри веб-сайта?

Спасибо!

1 Ответ

10 голосов
/ 06 декабря 2010

Это выглядит как кодировка для печати в кавычках.Вы должны проверить строку заголовка «Content-Transfer-Encoding:» сообщения, чтобы увидеть, присутствует ли какая-либо кодировка (например, base-64 или quoted-printable), и удалить кодировку, прежде чем пытаться проанализировать содержимое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...