4

MailKit を使用して、受信トレイから最新の 100 個の UID を取得したいと考えています。SORT 拡張機能をサポートしていないように見える Gmail メールボックスにアクセスしているため、OrderBy を使用できません。

これが私のコードです。問題は、最新のメールではなく、最も古い 100 件のメールを取得しているように見えることです (これは、私が期待する動作です)。これを行う方法はありますか?

オプション A - 最も古い 100 個の電子メール UID のみを取得する見込みがあり、最新の 100 個が必要です。

            imap.Inbox.Open(FolderAccess.ReadOnly);
            var orderBy = new [] { OrderBy.ReverseArrival };
            var items = imap.Inbox.Fetch(0, limit, MessageSummaryItems.UniqueId);

オプション B -すべてのUID を日付順に取得します (ただし、Gmail では機能しません):

            imap.Inbox.Open(FolderAccess.ReadOnly);
            var orderBy = new [] { OrderBy.ReverseArrival };
            SearchQuery query = SearchQuery.All;
            var items = imap.Inbox.Search(query, orderBy);

IMAP サーバーは、SORT 拡張機能をサポートしていません。

その理由は、ユーザーへの応答性を向上させるために、メールボックスをすばやくスキャンするためです。

4

2 に答える 2