首页 > 解决方案 > 如何使用 imap_open (PHP) 将收件箱中的 IMAP 文件夹排除在阅读之外

问题描述

我正在编写一个 PHP 脚本,它读取收件箱中的所有邮件,通过 Header-Info 检测特殊邮件并将处理后的邮件移动到文件夹中。我想将此文件夹排除在进一步阅读之外,目前我的脚本还找到了已处理文件夹中的邮件。我正在使用这样的 imap_open 函数:

$host = "{" . HOST . ":" . PORT . "/imap/ssl/novalidate-cert}INBOX";
$email = EMAIL;
$password = PASSWORD;
$imap = imap_open($host, $email, $password) or die("Cannot Connect " . imap_last_error());
$emailIds = imap_search($imap, 'FROM ' . SCAN_EMAIL_FOR_OFFERS, SE_UID);

if (!empty($emailIds)) {
    foreach ($emailIds as $emailId) {
        $email = new readMail();
        $header = $email->get_headerinfo($imap, $emailId);
        if (strpos($header->subject, "Angebot Nr.") != false) {
            ...Doing stuff...

            $email->move_mail($imap, $emailId, MOVE_PROCESSED_TO_FOLDER);
        }
    }
} else {
    echo "No new offers.";
}

imap_close($imap);

问候

编辑:这是 readMail-Class 的移动功能......

function move_mail($imap, $uid, $inboxFolder) {
        $msgNo = imap_msgno($imap, $uid);
        $movingMail = imap_mail_move($imap, $msgNo, 'INBOX/'. $inboxFolder);
        if($movingMail == false) {die(imap_last_error());}
    }

标签: phpimap

解决方案


推荐阅读