IMAP 有点问题。基本上,我连接到服务器以获取文件夹名称,为每个文件夹重新连接,循环浏览每条消息并执行我需要的操作。
除了事情变得越来越慢之外,它正在工作。有什么想法吗?我有一种有趣的感觉,它与 imap_body 有关,因为这似乎是导致问题的原因。我是否需要以某种方式为每个循环清除它?
我的代码看起来与此类似(但是删除了很多位)...
$Mailbox = imap_open("$Hostname", "$Username", "$Password") or die('Error: ' . imap_last_error());
$List = imap_list($Mailbox, "$Hostname", "*");
if(is_array($List))
{
foreach ($List as $Folder)
{
$FolderName = imap_utf7_decode($Folder);
$FolderStream = imap_reopen($Mailbox, "$Folder") or die('Error: ' . imap_last_error());
$FolderCount = imap_num_msg($Mailbox);
for($i=1;$i<=$FolderCount;$i++)
{
$EmailBody = imap_body($Mailbox, $i);
// Do whatever I need here
}
}
}
imap_close($Mailbox);
更新 我通过使用服务器的 IP 地址而不是主机名(这是除了指定端口之外)加快了速度,尽管问题仍然存在,因为事情变得越来越慢。