2014-12-09 2 views
0

Я загружаю свои папки с MCOIMAPFetchFoldersOperation, который дает мне хороший список всех моих папках:IMAP Папки с MailCore2

  • [Gmail]
  • [Gmail]/All Mail
  • [Gmail]/Drafts
  • [Gmail]/Important
  • [Gmail]/Sent Mail
  • [Gmail]/Starred
  • [Gmail]/Trash

Когда я выборки сообщений для моих папок я получаю хороший кусок дублей, так как то же сообщение может существовать в , [Gmail]/All Mail и [Gmail]/Important и др. в то же время. Я проверяю наличие дубликатов с UID сообщений, но UID уникален только в определенной папке, поэтому в этом случае это бесполезно.

Какой будет наиболее совместимый подход?

ответ

2

Как указано в Gmail IMAP extensions, вы можете получить атрибут X-GM-MSGID для сообщения. Это значение уникально в папках.

Вы можете получить значение X-GM-MSGID для всех новых сообщений, проверить, какие сообщения уже загружены, и загрузить те, которые отсутствуют.

Это то, что выводит идентификатор сообщения в IMAP; точно не знаю, как это сделать в Mailcore2.

a006 FETCH 1 (X-GM-MSGID) 
* 1 FETCH (X-GM-MSGID 1278455344230334865) 
a006 OK FETCH (Success) 

Это относится только к Gmail. Вы можете проверить, поддерживает ли сервер, ищет X-GM-EXT-1 в ответе CAPABILITY. Насколько я знаю, нет стандартного способа сделать это; в RFC-приложениях IMAP нет концепции того же сообщения, которое присутствует в нескольких почтовых ящиках.

+0

спасибо. Я имел в виду, что совместимость совместима между поставщиками. Я мог бы, конечно, использовать «Message-ID», но на самом деле нет никакой гарантии, что он будет уникальным или даже там вообще. – jim

+3

Нет никакой совместимости между поставщиками, потому что эта вещь «дублирующее сообщение» уникальна для gmail. Ни один другой IMAP-сервер не предоставляет несколько видов одного сообщения. X-GM-MSGID - единственный верный способ устранить их. Примечание. X-GM-MSGID, а не идентификатор сообщения :. Это совершенно разные понятия. – Max

+0

Спасибо, Макс, я этого не знал. Использование 'X-GM-MSGID' для GMail и не беспокоиться о других провайдерах кажется достаточно совместимым! – jim

 Смежные вопросы

  • Нет связанных вопросов^_^