2013-10-08 3 views
0

При взгляде на документы Mailcore я вижу способ получения порядкового номера электронной почты или электронной почты путем выполнения выборки с использованием UID-адреса электронной почты. Однако, глядя на документы Mailcore2, я не вижу никакого способа выполнить это. Есть ли способ для этого в Mailcore2, который я каким-то образом не вижу, или способ развернуть эту информацию? Я знаю, что это возможно в командной строке, но я хотел бы получить доступ к нему из моего приложения iOS.Получить номер последовательности электронной почты из UID-сообщения Fetch MailCore2

EDIT:

Вот почему я ищу эту функциональность:

У нас есть собственный клиент IOS, который извлекает 10 самых последних писем в то время, и сохраняет их. Кроме того, клиент будет получать следующие 10 старых электронных писем одновременно и сохранять их, а также самый низкий UID, который он видел (minUID).

Таким образом, мы должны иметь возможность постоянно получать следующие 10 старых писем, которые существуют на сервере, которые клиент еще не сохранил или не видел. (В этом и есть проблема).

Первоначально мы сделали это, извлекая электронные письма по UID группами по 10, используя наш сохраненный minUID минус 1 в качестве отправной точки для каждой выборки и обновляя наш minUID в конце каждой выборки. Однако, поскольку UID не обязательно смежны, количество возвращенных писем было непоследовательным, а иногда и нулевым. Чтобы решить эту проблему, мы подумали, что было бы полезно (перед каждой выборкой для следующих 10 старых писем электронной почты), получить электронное письмо с помощью нашего хранимого minUID, проверить его текущий порядковый номер и затем получить следующие 10 старых сообщений электронной почты на основе этой последовательности номер.

ответ

0

Документация не является лучшим местом для поиска примеров, но our wiki все чаще становится отличным хранилищем для такого рода информации. То, что вы ищете, это -[MCOIMAPSession fetchMessagesByUIDOperationWithFolder:requestKind:uids:], пример которого можно найти под номером IMAP examples wiki page.

+0

Благодарим за отзыв. Я отредактировал мой вопрос выше, чтобы прояснить проблему, которую я пытаюсь решить. Извлечение по UID не похоже, что оно решает проблему. – jac300

+0

Тогда вам, вероятно, понадобится 'fetchMessagesByNumberOperationWithFolder: requestKind: numbers:' – CodaFi

1

Чтобы получать сообщения, основанные на порядковый номере, вы можете использовать следующую функцию syncMessagesWithFolder:folderName:requestKind:uids:modSeq:

В приведенной ниже примере будет за вами все новые/измененные сообщения папки folder над порядковым номером highestModSeq.

MCOIMAPFetchMessagesOperation * op = [self.imapSession syncMessagesWithFolder:folderName 
                    requestKind:requestKind 
                     uids:[MCOIndexSet indexSetWithRange:MCORangeMake(1, UINT64_MAX)] 
                     modSeq:highestModSeq];