Показать полную графическую версию : принятие писем в формате HTML
Vlad Drakula
16-06-2006, 18:56
вот столкнулся со следующим:
при приеме письма в формате HTML
некоторые символы эскейпятся, например "=" переходит в "=3D"
что это такое? где это описано? и как это обратно разыскейпить????
PS
гугль и яндек не помогли... слишком много мусора...
Vlad Drakula
прием письма чем? и соответственно кто экранирует?
что касается =3D то это вообще особая песня. Это употребляется в Autlook-е для формата quoted-printable (пишу по памяти и могу ошибиться в точном названии). Это тот формат, который позваляет посылать письмо сразу в нескольких форматах и предоставлять почтовику распцтывать ситуацию. В результате в простых почтовиках ты увидлишь текст, а в умеющих это делать, скажем, текст с рисунком, отформатированными так, как послал автор в html. Так вот, поскольку microsoft.com rfc не писаны, они изобрели свою, употребляемую только у них вариацию формата со вставками этого самого =3D как служебного символа, отсюда и экранирование его. Если бы ты покопался в поисковиках подольше, то нашел бы массу информацию про эти разделители, причем в основном на около-хакерских сайтах и при описании троянов. Дело в том, что именно этот особенный формат и его чтение ms-продуктами разрешает легко засылать троянов используя бессмертную дыру с iframe и ссылкой на код вируса. Аминь :)
Vlad Drakula, подробнее вопрос задай плз!
В ХТМЛ эскейп последовательности не совсем так строятся:
= =
Но не сомневаюсь, что знаешь!
Где именно возникает проблема - в хидере или в теле, приведи плз подробнее участок исходного текста и то, что получилось(и где письмо смотрел, чем отправлял).
Vlad Drakula
16-06-2006, 20:32
mar
во... именно это... можно по подробнее???
Vlad Drakula
ну, поскольку это недокументированные вещи, то я лучше просто кину ссылку на скрипт (http://netzone.spb.ru/sendmail1.txt), который именно таким образом посылал письмо с картинкой. Название компании, адреса и все прочее изменены. Просто была как-то абсолютно идиотская задача - послать письмо так, как это делает outlook. Пришлось сделать письмо аутлуком, а потом полностью его сэмулировать. Поиски подобного привели по указанным адресам - к вирусам :) (Вообще я очень не рекомендую использовать подобный формат, потому, что на ряде серверов он просто запрещен как класс и письма могут не дойти). Заказчикам честно все объясняли :).
(Скрипт несколько кривоват, тк начинал его писать человек, изучающий php, а я потом развлекалась скурпулезной вставкой аутлуковских безобразий)
Vlad Drakula
16-06-2006, 21:57
mar
мне их не отправлять нужно, а получать...
т.е. задача у меня корректно отобразить принятое из аутлука письмо...
проще говоря есть файл *.MSG из него нужно сделать нормальный HTML файл...
Vlad Drakula
понятно, тогда распутывай в обратную сторону, в этом смысле мой файл может помочь (по работе с теми же разделителями). Но имей в виду, что не-ms почтовики работают несколько по-иному, скорей ближе к стандпртным rfc.
Vlad Drakula
16-06-2006, 22:32
mar
сейчас мы просто тупо заменяем =3D на = и несколько подобных символов...
vadimiron
17-06-2006, 15:48
А нельзя покапать в сторону COM-объектов
вроде к Outlook можно, например, с помощью ПХП вот так обращаться
$oOutlook = new COM("Outlook.Application");
$session= new COM("MAPI.Session");
Там наверняка есть какие то функции
ссылка (http://www.programmersheaven.com/articles/Bogomil/art.htm)
Vlad Drakula
17-06-2006, 16:39
vadimiron
ага... на юниксойдном сервере...
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.