imap_fetchbody - закодированная ошибка тела - PullRequest
5 голосов
/ 15 марта 2011

Я пытаюсь получить определенный раздел тела письма, используя:

$message = imap_fetchbody ($imap_stream,$n,1);

Это прекрасно работает для писем, отправленных с помощью Outlook, Hotmail, Yahoo и т. Д. Но когда я пытаюсь получить текст письма, отправленного с устройства Blackberry или Andriod, сообщение кодируется и шифруется, например:

xmb250IHN0eWxlPSdjb2xvcjojRjk3MWIxMDNiMTEyYjExOGI0N2I1MWI1

Хотя тело закодировано, заголовок в порядке. Как декодировать текст сообщения электронной почты, отправленного с устройства Android или Blackberry?

Спасибо,

Крис.

1 Ответ

8 голосов
/ 15 марта 2011

Вы должны иметь возможность запустить imap_fetchstructure , чтобы получить закодированное значение.Если это значение равно 3, вам нужно декодировать через imap_base64 .

. Я уже использовал следующее (хотя я не могу вспомнить, проверялось ли оно когда-либо с отправленной мобильной электронной почтой ранее):

$structure = imap_fetchstructure($stream, $msgno);
$text = imap_fetchbody($stream, $msgno, $partnum);   
if($structure->encoding == 3) {
    $text = imap_base64($text);
} else if($structure->encoding == 4) {
    $text = imap_qprint($text));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...