laravel PHP Imap获取消息正文

qij5mzcb  于 2023-01-14  发布在  PHP
关注(0)|答案(1)|浏览(148)

我连接到一个邮箱,并获得每个邮件的标题信息,如下所示:

$mailbox = new PhpImap\Mailbox(
    env('MAIL_IMAP_PATH') . env('MAIL_FOLDER'), // IMAP server and mailbox folder
    env('MAIL_LOGIN'), // Username for the before configured mailbox
    env('MAIL_PASSWORD') // Password for the before configured username
);
$mailsIds = $mailbox->searchMailbox('ALL');
foreach($mailsIds as $mail_elem) {
    $mail = $mailbox->getMail($mail_elem);
}

getMail给了我所有的头信息,没有主体。我已经检查了$mailbox->上存在的每一个方法,没有办法得到主体。我在这里做错了什么?
第二种方法是使用来自imap_open()imap_fetchbody()的流。这感觉更像是一种变通方法,因为我第二次连接到邮箱,但也不起作用:

foreach($mailsIds as $mail_elem) {
    $imap_stream = imap_open(env('MAIL_IMAP_PATH') . env('MAIL_FOLDER'),
                        env('MAIL_LOGIN'), env('MAIL_PASSWORD'));
    $message = imap_fetchbody($imap_stream, $mail_elem, 1.1);
}

我收到一个错误:

imap_fetchbody(): Bad message number

有人知道这是怎么回事吗?

brc7rcf0

brc7rcf01#

必须使用$mail对象而不是$mailbox对象获取主体。

foreach($mailsIds as $mail_elem) {
    $mail = $mailbox->getMail($mail_elem);
    $message = $mail->textHtml;
}

相关问题