mailkit如何根据多种条件搜索imap收件箱?
How to search imap inbox with mailkit based on multiple condition?
我想根据 NotSeen 和 NotDeleted 等多种条件使用 mailkit 搜索 imap 收件箱。我知道查询是可以接受的,如果我们进行单独的搜索查询。
var uids = client.Inbox.Search(SearchQuery.NotSeen);
var uids = client.Inbox.Search(SearchQuery.NotDeleted );
但我需要将这两个查询放在一起并根据条件获取所有 Uid。
任何帮助将不胜感激。
好的,我找到了管理它的方法。如果你有更好的方法,请建议我。
var unread = client.Inbox.Search(SearchQuery.NotSeen);
var Deleted = client.Inbox.Search(SearchQuery.Deleted);
var Res = unread.Except(Deleted).ToList();
您可以使用 And() and/or Or():
组合搜索查询
var uids = client.Inbox.Search (SearchQuery.NotSeen.And (SearchQuery.NotDeleted));
或
var uids = client.Inbox.Search (SearchQuery.And (SearchQuery.NotSeen, SearchQuery.NotDeleted));
此代码段添加条件搜索条件在设置主查询后
var query = MailKit.Search.SearchQuery.FromContains("anyone@gmail.com")
.And(MailKit.Search.SearchQuery.SubjectContains("Your Subject"));
query = query .And(MailKit.Search.SearchQuery.DeliveredAfter(DateTime.Parse("2020-02-28")));
我想根据 NotSeen 和 NotDeleted 等多种条件使用 mailkit 搜索 imap 收件箱。我知道查询是可以接受的,如果我们进行单独的搜索查询。
var uids = client.Inbox.Search(SearchQuery.NotSeen);
var uids = client.Inbox.Search(SearchQuery.NotDeleted );
但我需要将这两个查询放在一起并根据条件获取所有 Uid。 任何帮助将不胜感激。
好的,我找到了管理它的方法。如果你有更好的方法,请建议我。
var unread = client.Inbox.Search(SearchQuery.NotSeen);
var Deleted = client.Inbox.Search(SearchQuery.Deleted);
var Res = unread.Except(Deleted).ToList();
您可以使用 And() and/or Or():
组合搜索查询var uids = client.Inbox.Search (SearchQuery.NotSeen.And (SearchQuery.NotDeleted));
或
var uids = client.Inbox.Search (SearchQuery.And (SearchQuery.NotSeen, SearchQuery.NotDeleted));
此代码段添加条件搜索条件在设置主查询后
var query = MailKit.Search.SearchQuery.FromContains("anyone@gmail.com")
.And(MailKit.Search.SearchQuery.SubjectContains("Your Subject"));
query = query .And(MailKit.Search.SearchQuery.DeliveredAfter(DateTime.Parse("2020-02-28")));