运行以下命令一次时:
<?php
$imap_structure = imap_fetchstructure($mail_connection, $email_number);
?>
我收到以下错误消息:
未知:[UNAVAILABLE] 提取消息时 FETCH 服务器错误 (errflg=2)
为了确认 PHP 的imap_fetchstructure
函数导致了我在从函数顶部向下移动的die();
每个imap_*
函数之后使用的错误,直到我再次开始收到错误。这是我检查过的事情的清单:
- 每封电子邮件都从雅虎成功检索并添加到数据库中,就好像没有出错一样;该过程取决于获取此电子邮件的结构,因此仅凭这一点,我就不知如何工作,同时还会引发错误。
- 这实际上是在已经在几百封电子邮件上测试了我的邮件脚本之后开始随机发生的(不是一次全部,在小得多的批次中)。
- 只发生在 PHP 的
imap_fetchstructure
函数中;循环时(例如十封电子邮件),每次迭代都会发生错误。 - 仅针对 Yahoo 邮件服务器发生,其他服务器不会使用完全相同的代码触发此错误。
- 自定义错误处理程序无法返回行号(尽管我知道错误发生在哪里。
@imap_fetchstructure()
尽管仍在报告错误,但我尝试通过使用来抑制错误。- 我尝试将代码粘贴到
try {}
/中catch (exception $e) {}
,但再次报告错误。 - 我重新启动了我的服务器并提取了一个不同的 IP,只是因为它在更愚蠢的情况下有效,尽管没有骰子。
- [编辑] 问题开始后不到一个小时就停止了。
我遇到过一些人在Mozillazine上进行过报道:
我最近也开始使用我的雅虎帐户收到此“[UNAVAILABLE] UID FETCH Server error while fetching messages”。
他们的下一篇文章:
所以今天,不用做任何不同的事情,问题就自行解决了。这似乎是说它是在雅虎的一端,但奇怪的是,虽然它发生在 Thunderbird 中,但它没有发生在其他电子邮件客户端中。
除了硬编码我的自定义错误处理程序以忽略此错误之外,我如何抑制或编码我的系统以更好地处理这种情况?