【发布时间】:2010-10-14 20:42:32
【问题描述】:
我正在使用 Zend 框架提供的 IMAP 类通过 imap 访问 gmail 消息。我一一访问收件箱中所有邮件的邮件头,并在本地对其进行索引。该脚本适用于邮件少于 10000 条的收件箱。对于较大的收件箱,该脚本会断开连接,可能是超时。
这是堆栈跟踪:
异常消息:无法读取 - 连接已关闭?
追踪:
#0 /home/dev/trunk/Zend/Mail/Protocol/Imap.php(168): Zend_Mail_Protocol_Imap->_nextLine()
#1 /home/dev/trunk/Zend/Mail/Protocol/Imap.php(285): Zend_Mail_Protocol_Imap->_nextTaggedLine(NULL)
#2 /home/dev/trunk/Zend/Mail/Protocol/Imap.php(587): Zend_Mail_Protocol_Imap->readLine(NULL, 'TAG103')
#3 /home/dev/trunk/Zend/Mail/Storage/Imap.php(353): Zend_Mail_Protocol_Imap->fetch('UID', 12267)
#4 /home/dev/trunk/model/gmail_imap_oauth.class.php(121): Zend_Mail_Storage_Imap->getUniqueId(12267)
有没有办法让连接保持更长时间?我正在通过命令行运行此脚本并尝试在 php.ini 中增加脚本最大运行时间,但没有帮助。
【问题讨论】:
-
我正在检查 zend 库文件 Imap.php,它使用 fsockopen 连接到 imap 服务器。可能是连接的一些超时限制。
-
这里的代码,创建对象后,调用 indexAllMails() 开始获取。
标签: php zend-framework imap