我想使用 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 扩展。
原因是快速扫描邮箱以提高对用户的响应能力。