バックグラウンド
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);