Я использую следующий код для получения электронных писем, используя IMAP PHP расширение:
<?php
/* connect to gmail */
$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = '[email protected]';
$password = 'blah';
$inbox = imap_open($hostname,$username,$password);
$emails = imap_search($inbox,'ALL');
if ($emails) {
foreach($emails as $emailNumber) {
$overview = imap_fetch_overview($inbox,$emailNumber,0);
$message = imap_fetchbody($inbox,$emailNumber,"1");
echo $overview[0]->from;
echo $message;
}
}
imap_close($inbox);
?>
Имея imap_fetchbody()
section
аргумент установлен в 1
Я получаю полную электронную почту, включая заголовки и HTML. http://pastebin.com/np84rG7r
Однако при изменении аргумента на 1.2
чтобы идентифицировать сообщение как HTML, ничего не возвращается.
Почему это происходит?
Я сделал этот небольшой фрагмент кода, чтобы выполнить работу вручную, пока не выясню, почему она не работает:
$message = imap_fetchbody($inbox,$emailNumber,"1.1.1");
$doc = new DOMDocument();
$doc->loadHTML($message);
$message = trim($doc->getElementsByTagName("td")->item(0)->nodeValue);
Задача ещё не решена.
Других решений пока нет …