[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: правильно раскодировать email
phpuser412
Коллеги, подскажите, что сделать?
Получаю почту с сервера, разбираю письма.
И столкнулся с проблемой следующего характера:


$text = imap_fetchbody($mbox, $oneMail, 1); // получаем только текст письма

$struct = imap_fetchstructure($mbox, $oneMail);
$encod=trim($struct->encoding);

if ($encod=='0') $text = quoted_printable_decode($text); # проблема: если это форвард, надо юзать imap_base64($text); как определить, что форвард ???

if ($encod=='4') $text = imap_qprint($text);
if ($encod=='3') $text = imap_base64($text);


У меня есть два письма: одно просто text/html, отправленное из аутлука, оно декодируется quoted_printable_decode($text);
Второе - такое же, но форвард сообщения, и оно должно декодироваться как imap_base64($text);. Но все проверенные мной параметры у них одинаковые.
Как же их различить?
Ron
Цитата (phpuser412 @ 20.12.2016 - 08:25)
$text = imap_fetchbody($mbox, $oneMail, 1); // получаем только текст письма

Не получать только текст письма, а забирать и заголовки тоже. =)
phpuser412
Как получить заголовки и что именно в них смотреть?
Ron
Цитата (phpuser412 @ 20.12.2016 - 08:46)
Как получить заголовки и что именно в них смотреть?

Я бы начал с того, что сохранил оба письма в raw формате и сравнил чем они различаются. Выбрал бы самый "надежный" признак их отличающий, ну а дальше дело техники.

Если они вообще прямо вот ничем не отличаются, то можно декодировать, потом обратно закодировать и посмотреть совпадают ли строки. Но это жуткий костыль конечно же, наверняка где-то можно выцепить информацию о payload-е.

phpuser412
просто письмо в raw выглядит так:
Цитата
=C9=CE=D6=C5=CE=C5=D2 = =C7=D2=D5=D0=D0=D9 =D0=CF=C4=C4=C5=D2=D6=CB=C9 =E9=F4 =FA=E1=EF


оно же в виде форварда:
Цитата
NC00YvRiNC10LIg0JDQvdC00YDQtdC5INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHPGJyPg0K PGI+U3ViamVjdDo8L2I+INC/0L4g0YHQsNC50YLRgyDRhdC70LXQsSDQuCDQutC+0YTQtT
walerus
phpuser412
тут посмотреть тыц , вроде есть пример как что определять...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.