通过imap_delete()和imap_expunge()检测成功删除

时间:2014-10-09 19:03:15

标签: php imap

我目前正处于一个不稳定的网络背后。网络断开经常发生。

  

有没有办法找到imap_delete是否与之一起使用   imap_expunge实际上删除了邮件因为imap_delete总是如此   无论如何都会返回。

我尝试设置自定义错误处理程序,但发现imap_delete()或imap_expunge()

都没有发出任何异常或任何警告或任何错误

1 个答案:

答案 0 :(得分:1)

永远不能完全确定:imap_delete将设置\ Deleted标志。

有几种不同的情况: 案例1:

1) The `STORE` command was received by the server
2) We received an `OK`.

如果从服务器收到“确定”,则可以确定服务器已接受该命令(尽管该消息可能不存在,并且在不存在的消息上设置标记不一定是错误)

案例2:

1) The `STOR`E command was received by the server
2) We did not receive the `OK` due to network failure

在这种情况下,您无法确定邮件是否已标记为已删除,因为您没有收到确认。在这种情况下,您应该在重新连接时重新发出删除。

案例3:

1) The `STORE` command was not received by the server.
2) We did not receive `OK` due to network failure

这与之前的案例无法区分。您应该重新发出删除。再次存储旗帜可能是多余的,但它不会伤害任何东西。

我希望后两种情况会导致某种错误,在这种情况下重新发出命令是安全的。希望使用PHP库的人可以加入。