背景
我正在运行以下代码来使用IMAP PHP 扩展检索电子邮件:
<?php
/* connect to gmail */
$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = 'blah@gmail.com';
$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);