簡體   English   中英

使用Exchange Web Services從C#中的自定義和已發送郵件文件夾獲取電子郵件

[英]Get emails from custom and sent mail folders in c# using Exchange Web Services

我正在嘗試從多個文件夾(包括“收件箱”,“已發送”和一些自定義文件夾)中檢索電子郵件。 我首先過濾文件夾,以便可以遍歷它們,調用FindItems返回它們的內容。 下面的代碼可以在沒有searchFilter4情況下工作(第10行),但是有了它,我得到了這個無用的錯誤:

'Microsoft.Exchange.WebServices.Data.ServiceResponseException' in Microsoft.Exchange.WebServices.dll

我的代碼:

// Folder name filter for Inbox, Completed, Inprogress, and Sent folders:
SearchFilter searchFilter1 = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, "Inbox");
SearchFilter searchFilter2 = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, "Completed");
SearchFilter searchFilter3 = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, "In Progress");
SearchFilter searchFilter4 = new SearchFilter.IsEqualTo(, WellKnownFolderName.SentItems);
SearchFilter.SearchFilterCollection searchFilterCollection = new SearchFilter.SearchFilterCollection(LogicalOperator.Or);
searchFilterCollection.Add(searchFilter1);
searchFilterCollection.Add(searchFilter2);
searchFilterCollection.Add(searchFilter3);
searchFilterCollection.Add(searchFilter4);

// Find folders:
FindFoldersResults findResults = service.FindFolders(
        WellKnownFolderName.MsgFolderRoot, searchFilterCollection,
        new FolderView(int.MaxValue) { Traversal = FolderTraversal.Deep }
);

我在寫問題的時候就知道了...

我需要做的就是在使用以下代碼行調用FindFolders之后將文件夾添加到我的findeResults

findResults.Folders.Add(Folder.Bind(service, WellKnownFolderName.SentItems));

我的新代碼:

// Folder name filter for Inbox, Completed, Inprogress, and Sent folders:
SearchFilter searchFilter1 = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, "Inbox");
SearchFilter searchFilter2 = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, "Completed");
SearchFilter searchFilter3 = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, "In Progress");
SearchFilter.SearchFilterCollection searchFilterCollection = new SearchFilter.SearchFilterCollection(LogicalOperator.Or);
searchFilterCollection.Add(searchFilter1);
searchFilterCollection.Add(searchFilter2);
searchFilterCollection.Add(searchFilter3);

// Find folders:
FindFoldersResults findResults = service.FindFolders(
        WellKnownFolderName.MsgFolderRoot, searchFilterCollection,
        new FolderView(int.MaxValue) { Traversal = FolderTraversal.Deep }
);

// Add SentItems to the findResults:
findResults.Folders.Add(Folder.Bind(service, WellKnownFolderName.SentItems));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM