为什么PHP中的IMAP功能如此可怕?有没有推荐的解决方法?我在私人服务器上运行了一小部分PHP,我已经设置了这个私人服务器来轮询几个不同的Gmail收件箱并为我汇总新邮件。它一直很慢 - 检查四个邮箱可能需要几秒钟才能完成。最近由于我无法解释的原因,它大部分都停止了工作。尽管凭证仍然有效,服务器只会在第一次请求时超时。
在寻找这个问题的解决方案时,我遇到了this "bug report",很快就被推到了桌面下面。但似乎我并不是唯一一个注意到PHP中的IMAP库几乎无法缓慢的人。
有没有其他人遇到过这个问题,并提出了在合理的时间内访问IMAP邮箱的任何技术? (几秒钟是非常不合理的!)
这是我正在做的事情,基本上是:
if ($mbox = imap_open('{imap.gmail.com:993/imap/ssl}INBOX', $users[$i], $passwords[$i])) {
$inbox = imap_check($mbox);
$total = (int) $inbox->Nmsgs;
if ($total > 0 && ($emails = imap_fetch_overview($mbox, "1:{$total}"))) {
foreach ($emails as $email) {
$messages[] = array(
'from' => $email->from,
'subj' => $email->subject,
'date' => strtotime($email->date),
'read' => $email->seen
);
}
}
}