PHP imap_search基于消息UID

时间:2012-04-16 11:11:35

标签: php email imap

有没有办法使用imap_search函数在IMAP服务器上搜索消息。根据php手册,imap_search只允许有限数量的搜索选项,而UID搜索不在它们之间: http://us.php.net/manual/en/function.imap-search.php

那么,是否有办法获取基于UID的消息(高于提供的UID)。这应该得到IMAP4协议修订后的支持(我认为自2003年以来)。

1 个答案:

答案 0 :(得分:0)

我相信你已经通过广泛的搜索,最终降落在这里。让我们面对它,它是不可能的;但该功能可以有解决方法。

也许您可以使用与此类似的代码:

$imap_stream = imap_open($mailbox, $username, $password);
$msg_no = 1212; //lets say momentarily
while(imap_fetchheader($imap_stream, $msg_no)){
    //do some processing
    $msg_no++;
}// loop will continue till there is no more of newer messages

请注意,这可能会导致最长执行时间,因此您可以使用for循环来执行特定迭代次数的作业。

$imap_stream = imap_open($mailbox, $username, $password);
$msg_no = 1212; //lets say
for($i=0;$i<=50;$i++){
if(imap_fetchheader($imap_stream, $msg_no)){
    //do some processing
}
$msg_no++;
} // this will go for 50 times