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 拡張機能をサポートしていません。
その理由は、ユーザーへの応答性を向上させるために、メールボックスをすばやくスキャンするためです。