Mailkit 错误未指定 uid。参数名称:uid
Mailkit error No uids were specified. Parameter name: uids
我想像这样获取收件箱中的所有邮件:
using (ImapClient client = new ImapClient(new ProtocolLogger("/imap.log", append: true)))
{
client.Timeout = 1200000;
if (!client.IsConnected)
client.Connect(imap.testserver.com, testportnumber, true);
client.Authenticate(email, lockmail);
var searchcond = SearchQuery.All;
var Inbox = client.Inbox;
Inbox.Open(MailKit.FolderAccess.ReadOnly);
var inbox = Inbox.Search(searchcond);
var fetchs = Inbox.Fetch(inbox, MessageSummaryItems.Envelope | MessageSummaryItems.Flags);
}
在 Fetch 行上出现此错误:
没有指定 uid。参数名称:uids
这是否意味着 Inbox.Search return 某些 Uid 在邮件文件夹中不存在?
我该如何解决?
表示Search()
returned 0个UID。
您可以通过以下方式避免此问题:
var uids = inbox.Search (query);
if (uids.Count > 0) {
var messages = inbox.Fetch (uids, ...);
...
}
如果您使用的 MailKit 早于 2.0.7,您可以尝试升级到 2.0.7,这 应该 让这不是问题(如 Fetch()
方法不应处理一组空的 uid 和 return w/o 错误)。
我想像这样获取收件箱中的所有邮件:
using (ImapClient client = new ImapClient(new ProtocolLogger("/imap.log", append: true)))
{
client.Timeout = 1200000;
if (!client.IsConnected)
client.Connect(imap.testserver.com, testportnumber, true);
client.Authenticate(email, lockmail);
var searchcond = SearchQuery.All;
var Inbox = client.Inbox;
Inbox.Open(MailKit.FolderAccess.ReadOnly);
var inbox = Inbox.Search(searchcond);
var fetchs = Inbox.Fetch(inbox, MessageSummaryItems.Envelope | MessageSummaryItems.Flags);
}
在 Fetch 行上出现此错误: 没有指定 uid。参数名称:uids
这是否意味着 Inbox.Search return 某些 Uid 在邮件文件夹中不存在?
我该如何解决?
表示Search()
returned 0个UID。
您可以通过以下方式避免此问题:
var uids = inbox.Search (query);
if (uids.Count > 0) {
var messages = inbox.Fetch (uids, ...);
...
}
如果您使用的 MailKit 早于 2.0.7,您可以尝试升级到 2.0.7,这 应该 让这不是问题(如 Fetch()
方法不应处理一组空的 uid 和 return w/o 错误)。