0

Mailcore のドキュメントを見ると、メールの UID を使用してフェッチを実行することで、メールのシーケンス番号を取得する方法が見つかります。しかし、Mailcore2 のドキュメントを見ると、これを達成する方法がわかりません。Mailcore2 には、どういうわけか表示されていない方法がありますか、またはこの情報をバブルアップする方法はありますか? コマンドラインで可能であることは知っていますが、iOS アプリ内からアクセスできるようにしたいと考えています。

編集:

私がこの機能を探している理由は次のとおりです。

一度に 10 件の最新のメールを取得して保存するネイティブ iOS クライアントがあります。さらに、クライアントは一度に次の 10 件の古いメールを取得して保存し、それが確認した最小の UID (minUID) も保存します。

そのため、クライアントがまだ保存または表示していない、サーバーに存在する次の 10 個の古い電子メールを継続的にフェッチできる必要があります。(そこに課題があります)。

最初は、10 のグループで UID ごとにメールをフェッチし、保存された minUID から 1 を引いた値を各フェッチの開始点として使用し、各フェッチの最後に minUID を更新することでこれを行いました。ただし、UID は必ずしも連続しているとは限らないため、返された電子メールの数は一定ではなく、場合によってはゼロでした。この問題を解決するには、(次の 10 通の古いメールを取得する前に) 保存されている minUID を使用してメールを取得し、現在のシーケンス番号を確認してから、そのシーケンスに基づいて次の 10 通の古いメールを取得することが役立つと考えました。番号。

4

2 に答える 2

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];
于 2015-05-01T10:34:35.537 に答える
0

ドキュメントは例を見つけるのに最適な場所ではありませんが、私たちの wikiはますますその種の情報のための優れたリポジトリになりつつあります. 探しているのは です。-[MCOIMAPSession fetchMessagesByUIDOperationWithFolder:requestKind:uids:]その例は、IMAP の例の wiki ページにあります。

于 2013-10-09T03:28:01.027 に答える