为什么 PHP 中的 IMAP 函数如此缓慢?有没有推荐的解决方法?我在私人服务器上运行了一小部分 PHP,我设置了该服务器来轮询几个不同的 Gmail 收件箱并为我汇总新邮件。它总是很慢——检查四个邮箱可能需要几秒钟才能完成。最近由于我无法解释的原因,它几乎完全停止了工作。尽管凭据仍然有效,但服务器只是在第一次请求时超时。
在寻找这个问题的解决方案时,我遇到了这个“错误报告”,它很快就被推到了桌子底下。但似乎我不是唯一一个注意到 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
);
}
}
}