2010-12-06 4 views
7

Я создаю электронную почту на основе CMS с PHP, и мне необходимо использовать Gmail в качестве почтовой службы. На данный момент сценарий безумно прост, и единственная проблема, с которой я столкнулась, связана с синтаксисом электронной почты Gmail.PHP: сообщения Gmail содержат недопустимый HTML и случайный jargon

я что-то немного более управляемым, как это ждет, когда получение по электронной почте:

<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 прямо в середине!

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

Спасибо!

ответ

10

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

+0

Спасибо! PHP * имеет * функцию для этого ('quoted_printable_decode()'). Я играю с ним прямо сейчас, и я получаю действительный HTML! – Blender

 Смежные вопросы

  • Нет связанных вопросов^_^