Php 如何使用Zend_Mail_Protocol_Imap或Zend_Mail_Storage_Imap批量检索电子邮件

Php 如何使用Zend_Mail_Protocol_Imap或Zend_Mail_Storage_Imap批量检索电子邮件,php,zend-mail,Php,Zend Mail,我使用Zend_Mail_Storage_Imap访问电子邮件,但使用以下代码 $storage = new Zend_Mail_Storage_Imap($imap); $allIds = $storage->getUniqueId(); // i get all key value pair of meesageid and uniqueid foreach ($allIds as $k => $v) { echo '<li>' . htmlentities

我使用Zend_Mail_Storage_Imap访问电子邮件,但使用以下代码

$storage = new Zend_Mail_Storage_Imap($imap);
$allIds = $storage->getUniqueId(); // i get all key value pair of meesageid and uniqueid
foreach ($allIds as $k => $v) 
{
    echo '<li>' . htmlentities($storage->getMessage($v)->subject) . "</li>\n";
}
我的问题是,它循环并一次收到一封电子邮件,速度很慢,就像每秒收到两封电子邮件一样,速度非常慢。我正在寻找这些邮件的批量检索方法,但找不到任何方法。在最终得到它之前有人做过吗

其中$imap是Zend_Mail_Protocol_imap的实例化和连接版本:

$imap->select;//或$imap->选择“文件夹名称”

$imap->requestAndResponse'SEARCH UNSEEN',$imap->escapeString'*'//所有未读电子邮件ID

$imap->requestAndResponse'搜索未从中查看someEmail@gmail.com“,$imap->escapeString”*”//来自的所有未读电子邮件idsomeEmail@gmail.com

$imap->requestAndResponse'从中搜索未查看的主题测试someEmail@gmail.com“,$imap->escapeString”*”//来自的所有未读电子邮件idsomeEmail@gmail.com以测试为主题

*您必须先执行上面的1,否则您将得到类似的结果:现在不允许标记错误搜索

以上所有操作都将返回一个类似于以下数组的数组:

//C:TAG3未显示的搜索 //S:*搜索321 323 362 371 377 384 386 387 388 389 416 417 418 //S:TAG3确定搜索已完成成功 //上述行的格式为RFC 1730,以显示实际发送/接收的内容。 数组大小=1 0 => 数组大小=14 0=>字符串“搜索”长度=6 1=>字符串“321”长度=3 2=>字符串'323'长度=3 3=>字符串“362”长度=3 4=>字符串“371”长度=3 5=>字符串“377”长度=3 6=>字符串“384”长度=3 7=>字符串“386”长度=3 8=>字符串“387”长度=3 9=>字符串“388”长度=3 10=>字符串“389”长度=3 11=>字符串'416'长度=3 12=>字符串'417'长度=3 13=>字符串'418'长度=3
这对你有帮助吗?你能接受答案还是提供自己的答案?