我正在使用php imap类.
在我的盒子里,我有很多邮件,但是使用这个脚本,我只会检索未反复的邮件.
我该怎么做?
if ($mbox=imap_open( "{" . $mailserver . ":" . $port . "}INBOX", $user, $pass ))
{
echo "Connected\n";
} else { exit ("Can't connect: " . imap_last_error() ."\n"); echo "FAIL!\n"; };
if ($hdr = imap_check($mbox)) {
$msgCount = $hdr->Nmsgs;
echo "Ci sono ".$msgCount." mail";
} else {
echo "Failed to get mail";
}
如果我做
$overview=imap_fetch_overview($mbox,"1:$msgCount",0);
脚本加载到无限时间.
imap_search UNSEEN解决方案不好,因为pop3不使用此标志.
那怎么办???????
非常感谢.
解决方法:
有两种方法可以遵循:
1.循环播放消息
$count = imap_num_msg($connection);
for($msgno = 1; $msgno <= $count; $msgno++) {
$headers = imap_headerinfo($connection, $msgno);
if($headers->Unseen == 'U') {
... do something ...
}
}
2.使用imap_search
有一个名为UNSEEN的标志,您可以使用它来搜索未读的电子邮件.您可以使用UNSEEN标志调用imap_search函数,如下所示:
$result = imap_search($connection, 'UNSEEN');
如果您需要将其与更多搜索标记相结合,例如从me@example.com搜索消息,您可以这样做:
$result = imap_search($connection, 'UNSEEN FROM "me@example.com"');
有关可用标志的完整列表,请参阅PHP网站上的imap_search手册页的条件部分(www.php.net/imap_search)
资料来源:http://www.electrictoolbox.com/php-imap-unread-messages/