我目前正处于一个不稳定的网络背后。网络断开经常发生。
有没有办法找到imap_delete是否与之一起使用 imap_expunge实际上删除了邮件因为imap_delete总是如此 无论如何都会返回。
我尝试设置自定义错误处理程序,但发现imap_delete()或imap_expunge()
都没有发出任何异常或任何警告或任何错误答案 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库的人可以加入。