我正在實施IMAP客戶端,並且IMAP郵箱同步存在問題。IMAP同步
首先,從IMAP服務器獲取新郵件是可以的,但我不知道如何從郵箱中找到已刪除的郵件。
我應該從服務器獲取所有消息並將其與本地數據進行比較以進行同步?
我正在實施IMAP客戶端,並且IMAP郵箱同步存在問題。IMAP同步
首先,從IMAP服務器獲取新郵件是可以的,但我不知道如何從郵箱中找到已刪除的郵件。
我應該從服務器獲取所有消息並將其與本地數據進行比較以進行同步?
通常的方法是執行用於每個文件夾以下兩個命令:
. EXAMINE "<foldername>"
. FETCH 1:* (UID FLAGS)
第一命令選擇的文件夾返回該文件夾的UIDVALIDITY。如果此值與先前爲此文件夾返回的UIDVALIDITY相匹配,則可以依靠UID。第二個命令針對所選文件夾中的每封郵件(至少)返回UID和全部FLAGS。
\Seen
)和已刪除郵件(\Deleted
)的信息。大多數客戶端都使用此方法,並且大多數IMAP服務器都針對它們進行了優化。限制因素通常是客戶端和服務器之間的可用帶寬。
下列情形是有點複雜:
也許爲時已晚,你的應用程序,但你可以在這個RFC找到完整的IMAP同步策略:http://tools.ietf.org/html/rfc4549!
UIDPLUS擴展可以幫助移動/複製電子郵件。 發現已刪除郵件的另一種方法是使用UID SEARCH:「EXAMINE」文件夾「」,然後「UID SEARCH 1:*'。這將提供郵箱中當前所有UID的列表,可以將其與本地緩存進行比較。 – Max 2012-07-30 19:01:41