PHP显示未读邮件计数

我正在使用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/

上一篇:不从服务器删除电子邮件时PHP发送到mysql数据库的问题


下一篇:保存电子邮件附件(python3,pop3_ssl,gmail)