2014-10-09 123 views
1

我正在製作一個工作POP3和IMAP的郵件客戶端。我正在用vmime api在C++中編寫客戶端程序。我的問題是:什麼是同步郵件的最佳方式?電子郵件同步的最佳方式:POP3 UIDL,IMAP UID,消息ID

我認爲識別器是很好的方式,但我不知道什麼是同步電子郵件的最好識別器:

  • IMAP:UID(RFC 3501)
  • POP3:UIDL(RFC 1932)
  • 因特網格式消息:消息ID(RFC 5322)

消息ID是最容易使用的,但是有可能,有兩個相同的消息ID? UID(IMAP)和UIDL(UID)的同一問題?

你能幫助我嗎? 預先感謝您。

回答

1

雖然馬克斯說得對的(FolderName, UIDVALIDITY, UID)元組永遠不會參考任何其他消息,有不幸的是不能保證一個給定的消息將始終稱只使用相同的元組。服務器允許衝擊UIDVALIDITY,並且沒有提供唯一標識符的標準方式,該標識符在消息移動中保持不變或標識重複的消息。

2

在IMAP中,(FolderName, UIDVALIDITY, UID)的元組通過規範保證對於給定的服務器永遠是唯一的。請注意,所有三個值都需要保證唯一性。每個文件夾都有自己的UID,可能會重疊。刪除並重命名的文件夾也可能具有相同的UID,但必須具有不同的UIDVALIDITY。

在POP3中,UIDL通常就足夠了,因爲沒有文件夾。

通常由發件人生成消息ID,因此不能保證它是唯一的。重複此操作是微不足道的:將消息從一個IMAP文件夾複製到另一個。

相關問題