2014-10-09 180 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