Как вы уже видели, Outlook - это бич вселенной электронной почты. Вы заметите, что источник, указанный в учебнике, который вы используете, несколько раз ссылается на контент, закодированный как text/plain
. Письмо, отправляемое из Outlook, скорее всего, содержит text/html
содержимого вместо или в дополнение к текстовому тексту.
В зависимости от того, что вы хотите сделать с содержимым электронного письма, вы можете адаптировать скрипт для приема text/html
закодированного контента, также вставив дублирующий поиск тела ниже существующего, например, так:
//get the message body
if(substr($decoded[0]['Headers']['content-type:'],0,strlen('text/html')) == 'text/html' && isset($decoded[0]['Body'])){
$body = $decoded[0]['Body'];
} elseif(substr($decoded[0]['Parts'][0]['Headers']['content-type:'],0,strlen('text/html')) == 'text/html' && isset($decoded[0]['Parts'][0]['Body'])) {
$body = $decoded[0]['Parts'][0]['Body'];
} elseif(substr($decoded[0]['Parts'][0]['Parts'][0]['Headers']['content-type:'],0,strlen('text/html')) == 'text/html' && isset($decoded[0]['Parts'][0]['Parts'][0]['Body'])) {
$body = $decoded[0]['Parts'][0]['Parts'][0]['Body'];
}
Что, конечно, не очень красиво, но должно извлекать HTML-контент из Outlook, если он обнаружен.
Если вам нужно проанализировать HTML-контент, ваша проблема будет немного сложнее. Ваш следующий шаг - взглянуть на некоторые ответы на этот вопрос: Надежный, зрелый HTML-парсер для PHP .
Удачи!