我正在使用MCOIMAPFetchFoldersOperation
下载我的文件夹,它为我提供了所有文件夹的精彩列表:
INBOX
[Gmail]
[Gmail]/All Mail
[Gmail]/Drafts
[Gmail]/Important
[Gmail]/Sent Mail
[Gmail]/Starred
[Gmail]/Trash
当我为我的文件夹提取消息时,我得到了很多重复,因为INBOX
,[Gmail]/All Mail
和[Gmail]/Important
等人可能存在相同的消息。同时。我检查了带有UID消息的dupes,但是UID在特定文件夹中只是唯一的,因此在这种情况下没用。
最兼容的方法是什么?
答案 0 :(得分:2)
如Gmail IMAP extensions所述,您可以获取邮件的X-GM-MSGID
属性。此值在文件夹中是唯一的。
您可以获取所有新邮件的X-GM-MSGID
值,检查已下载的邮件,然后下载丢失的邮件。
这是在IMAP中获取消息ID的内容;不确定如何在Mailcore2中做到这一点。
a006 FETCH 1 (X-GM-MSGID)
* 1 FETCH (X-GM-MSGID 1278455344230334865)
a006 OK FETCH (Success)
这是Gmail特有的。您可以通过在X-GM-EXT-1
响应中查找CAPABILITY
来检查服务器是否支持该服务器。据我所知,没有标准的方法可以做到这一点; IMAP RFC没有在多个邮箱中存在相同消息的概念。