2014-10-09 22 views
0

我目前在不稳定的网络背后。网络断开经常发生。检测imap_delete()和imap_expunge()的成功删除

有没有办法找到与 imap_expunge一起使用imap_delete是否实际删除邮件,因为imap_delete总是 返回true,不管是什么。

我试图建立一个自定义的错误处理程序,但发现,无论是任何异常,也没有任何警告或错误正在被imap_delete出具()或imap_expunge()

回答

1

谁也不能完全肯定:imap_delete将设置一个\ Deleted标志。

有几个不同的方案: 案例1:

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

如果从服务器接收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库的人可以参与其中。

+0

感谢您的答案,但我怎样才能收到'OK'命令? – Snehasish 2014-10-10 07:55:55

+0

imap_delete()不返回任何东西..我怎样才能收到OK命令?请告诉.. – Snehasish 2014-10-12 08:15:46

+1

假设它返回它是成功的?我不知道如何在PHP中使用异常 – Max 2014-10-12 14:51:19