2016-09-26 90 views
0

我想根據多個條件搜索帶有郵件包的imap收件箱,如NotSeen &未刪除。我知道查詢很容易,如果我們做個人搜索查詢。如何搜索基於多個條件的郵件包的imap收件箱?

var uids = client.Inbox.Search(SearchQuery.NotSeen); 
var uids = client.Inbox.Search(SearchQuery.NotDeleted); 

,但我需要把那些兩個查詢一起&得到所有的UID根據條件。 任何幫助,將不勝感激。

回答

1

您可以使用組合搜索查詢和()和/或或():

var uids = client.Inbox.Search (SearchQuery.NotSeen.And (SearchQuery.NotDeleted)); 

var uids = client.Inbox.Search (SearchQuery.And (SearchQuery.NotSeen, SearchQuery.NotDeleted)); 
+0

感謝您的答覆...偉大的答案:) – aspdotnetdevelopertest

+0

如果我需要serach /獲取SearchQuery的前10個郵箱基礎,該怎麼辦? –

+0

@ParthAkbari你有2個選項。或者使用上面的'Search'方法,但只需使用前10個uid(假設您需要默認排序);或者您可以像上面那樣構建'SearchQuery',然後指定您自己的排序順序,然後調用[Sort](http://www.mimekit.net/docs/html/M_MailKit_Net_Imap_ImapFolder_Sort_1.htm)方法(它將返回與「Search」相同的結果,但以您要求的任何順序)。例如:'var uids = folder.Sort(query,new OrderBy [] {OrderBy.ReverseArrival});'' – jstedfast

0

好吧,我找到了一種方法來管理它。如果你有更好的方法,請給我建議。

  var unread = client.Inbox.Search(SearchQuery.NotSeen); 
      var Deleted = client.Inbox.Search(SearchQuery.Deleted); 
      var Res = unread.Except(Deleted).ToList(); 
相關問題