2013-05-04 84 views
2

使用:Delphi XE2,來自SVN的最新Indy快照(10.6.0.4997)Indy IMAP - 用於識別新電子郵件的屬性?

在IMAP的情況下,有2個屬性 - UID和MsgID,可用於唯一標識郵箱中的郵件。

  1. 我寫的電子郵件客戶端,並且需要知道哪個是更可靠或推薦的兩個客戶端連接並檢索郵件列表,以每次存儲。

  2. 需要什麼樣的步驟來檢查新電子郵件?我特別尋找正確的序列和一套Indy IdIMAP4命令來獲得新的電子郵件。

TIA。

+0

MsgID由發送郵件服務器設置,UID由接收郵件服務器設置。所以你應該使用UID進行識別http://tools.ietf.org/html/rfc3501#section-6.4.8 – 2013-05-04 19:11:51

回答

5

與POP3/SMTP不同,IMAP定義了電子郵件上的標誌。 TIdMessage.Flags財產有mfRecentmfSeen標誌可用(等)。您的客戶可以查找其上設置有mfRecent的電子郵件,然後更新服務器上的標誌以清除mfRecent並根據需要設置mfSeen

+0

@RemyLebau:IdIMAP4的哪些方法用於迭代消息?我想避免使用UIDRetrieveAllEnvelopes,因爲它會下載所有消息。 – 2013-05-05 06:58:47

+1

一種可能性是使用'(UID)SearchMailBox()'方法檢索符合指定過濾條件的電子郵件的MsgNums。例如,一個標準允許您搜索設置了「Recent」標誌的郵件,另一個標準允許您搜索「Unseen」郵件。 – 2013-05-05 07:44:07