【发布时间】:2013-10-10 05:52:35
【问题描述】:
我正在创建个人网络邮件,但在使用 imap_search()
时遇到了一些问题我使用此代码,但函数 imap_search() 并没有停止:
$criteria = 'SINCE "'.date('d M Y', strtotime('- 1 days')).'"';
$uids = imap_search($mailbox, $criteria, SE_UID, 'UTF-8');
我试过用一个小邮箱,它运行缓慢,但它工作,但它没有一个大邮箱。 因此,我尝试仅获取一封具有相同邮箱和 'SUBJECT' 搜索的电子邮件,但它也不起作用。 有了这个经验,我认为问题不是我的 $criteria,我的 imap_open() 工作成功。
最大的邮箱一天总共有 9000 封电子邮件和 63 封。最小的一共有20封邮件,我都成功加载了。
我在不同的服务器上尝试过,结果都是一样的。
如果有人有想法,那将非常有帮助。
谢谢。
【问题讨论】:
-
您是否对代码进行了检测或进行了协议跟踪,以便查看延迟是本地引起的还是正在等待远程服务器回复 SEARCH 命令?
-
@Max 通过一个包含 42 封电子邮件的中型邮箱,我在 9.42 秒内成功加载它们。 imap_search() 这次花了 9 秒,而且邮箱更大(9000)它根本没有停止。
-
当我将 'ALL' 条件放入 imap_search() 时,会加载 9000 个 uids 的数组几毫秒,当我尝试使用 'SINCE' 标准时,该功能不会停止。这是否意味着 imap_search() 的 'SINCE' 标准不适用于大邮箱?我应该自己在 php 中过滤 9000 封电子邮件还是现有的其他解决方案?
-
如果您的服务器非常慢,这听起来像是搜索命令。可以直接连接使用IMAP命令进行评估吗?
-
例如,在 gmail 上进行 UID 搜索几乎不需要任何时间。
标签: php performance search imap webmail