0

バックグラウンド

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);
4

1 に答える 1