我正在使用MailKit .net库从gmail中获取电子邮件。
根据Getting only new mail from an IMAP server和IMAP: Search for messages with UID greater than X (or generally, after my last search)
我想搜索所有的电子邮件后,最后记得的UID。让我们假设最后一条消息有一个唯一的id "123456“。我想找
123456:*
如何在MailKit中实现此搜索?
发布于 2016-01-25 16:03:01
Search
方法在MailKit中的ImapFolder
上有多个重载。您将需要使用使用IList<UniqueId>
参数的重载之一。
因此,现在需要创建要搜索的UID列表。我建议查看一下UniqueIdRange
命名空间中的MailKit类。
如果您的客户端程序在上一次会话中看到的最后一个UID是123456
,那么您实际上希望从UID 123457
开始搜索。在IMAP中,*
只是“文件夹中最大唯一id值”的通配符。在MailKit中,您可以只使用UniqueId.MaxValue
。
var range = new UniqueIdRange (new UniqueId ((uint) 123457), UniqueId.MaxValue);
现在有了范围123457:*
,就可以执行搜索了:
foreach (var uid in folder.Search (range, query)) {
var message = folder.GetMessage (uid);
}
https://stackoverflow.com/questions/34994983
复制相似问题