Есть ли способ расшифровки электронных писем в формате html? - PullRequest
1 голос
/ 23 февраля 2009

Я пишу программное обеспечение поддержки, и я решил выделить вещи, было бы здорово иметь поддержку HTML.

Глядя на внешний вид "HTML", я хочу залезть в позу эмбриона и плакать!

Существует ли класс php для расшифровки электронных писем HTML для поддержки базового HTML? Я не хочу отображать электронные письма в рамке, потому что я хочу работать с данными и анализировать их. Я также не хочу поддерживать глупые вещи, такие как изменение шрифта, так как это веб-приложение. Я хочу, чтобы мое веб-приложение сообщало, что это за шрифт, и у меня не было хиппи, который отправлял по электронной почте команду поддержки в комическом без желтого цвета. Я хочу поддержать жирный, курсив, подчеркнутый, растянутый и списки (http://dl.getdropbox.com/u/5910/Jing/2009-02-23_2100.png).

Я также не совсем понимаю разницу между rich-text и html, так как я всегда думал, что rich-text допускает только те функции, которые я хотел, но мне кажется, что я могу делать все в rich-text, что я могу делать в Html .

Также я должен добавить, что я использую Zend Framework из-за невероятной Zend_Mail

Ответы [ 5 ]

2 голосов
/ 23 февраля 2009

Вы можете передать его через htmltidy , а затем отфильтровать его с помощью чего-то вроде HtmlPurifier , но, конечно, вы можете удалить что-то важное для понимания содержимого. В этом проблема визуального формата, такого как html.

1 голос
/ 23 февраля 2009

Вы можете использовать PHP-функцию strip_tags () , и это необязательный параметр "allowable_tags". Это позволит вам удалить все теги, которые не <em> <b> <strong> <u> и т. Д.

Что касается RTF и HTML, я понимаю, что когда Outlook и Exchange взаимодействуют с системами, не совместимыми с RTF, они конвертируют RTF в HTML. Я не уверен, что это всегда так, или насколько последовательна эта функция, но это может объяснить, почему отправленные сообщения в формате RTF выглядят как HTML.

0 голосов
/ 23 февраля 2009

Извлечение HTML из почты Outlook на первый взгляд может показаться страшным, но это всего лишь теги HTML - всего их много!

Так что, если вы просто найдите «<», а затем найдете следующий «>», у вас есть тег. Если это не то, что вы хотите иметь, например, "", просто выбросьте это и повторите Simple так.

(Я сделал именно это в программе проверки орфографии и грамматики, которая не только извлекает простой текст из Outlook и проверяет его - он может затем отправить все пользовательские изменения обратно в HTML, не уничтожая никаких тегов. * не просто, хотя!; -)

0 голосов
/ 23 февраля 2009

Или вы можете использовать текстовый вариант, прикрепленный к электронному письму. Если нет простого текста, вы можете использовать упрощенную версию HTML. Я думаю, что с помощью этих шагов вы получите хороший результат:

  1. Удалить переводы строк
  2. Превратить </p> и <br/> в новую строку
  3. Убрать все теги html
0 голосов
/ 23 февраля 2009

Я почти уверен, что вам придется написать свой собственный класс ... такого реального класса нет в документах PHP, которые я видел ..

...