【发布时间】:2011-04-08 11:36:05
【问题描述】:
在我们的应用程序中,我们希望非常频繁地发出 imap_search,例如
$result = imap_search($mbox,'ON "20-May-2008" SUBJECT "ip list" TO "user1@gmail.com" FROM "user2@gmail.com"');
IMAP 搜索是如何实现的?是使用线性步行吗?如果是,有什么替代方法?
谢谢
【问题讨论】:
在我们的应用程序中,我们希望非常频繁地发出 imap_search,例如
$result = imap_search($mbox,'ON "20-May-2008" SUBJECT "ip list" TO "user1@gmail.com" FROM "user2@gmail.com"');
IMAP 搜索是如何实现的?是使用线性步行吗?如果是,有什么替代方法?
谢谢
【问题讨论】:
这里要注意的是 php imap_search 函数正在从您的 imap 客户端向邮件服务器发出搜索请求。然后服务器接受这个请求并在服务器端使用特定于特定 imap 服务器的逻辑对其进行处理。因此,除非您知道 imap 服务器的内部细节,否则您不知道搜索是如何实现的。
您可能有一个 imap 服务器可以有效地执行搜索,而另一个 imap 服务器执行它的效果很差。因此,对于大型邮箱,您的搜索可能会运行缓慢并消耗服务器上的大量资源。
我认为避免缓慢搜索的唯一替代方法是编写您自己的邮箱管理器,该管理器与 imap 服务器同步并在本地执行所有搜索,通过您编写的针对您选择的数据存储运行的有效算法。不是一件容易的事。
【讨论】: