2015-06-11 57 views
1

我正在使用EWS託管API和C#從用戶帳戶獲取電子郵件。我從「AllItems」文件夾中獲取電子郵件並獲取不同的電子郵件屬性,如主題,日期時間等。EWS託管API:從「AllItems」文件夾獲取時識別刪除的電子郵件

「AllItems」文件夾還包含已刪除並位於「DeletedItems」文件夾中的電子郵件。我想確定電子郵件是否被刪除(即它在「DeletedItems」文件夾中),並且如果可能的話,當電子郵件被刪除時。

以下是我正在使用的代碼。我找不到可以識別郵件是否被刪除的屬性。

FolderView viewFolders = new FolderView(int.MaxValue) { Traversal = FolderTraversal.Deep, PropertySet = new PropertySet(BasePropertySet.IdOnly) }; 

ItemView viewEmails = new ItemView(int.MaxValue) { PropertySet = new PropertySet(BasePropertySet.IdOnly) }; 

SearchFilter folderFilter = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, "AllItems"); 

FolderId rootFolderId = new FolderId(WellKnownFolderName.Root); 

FindItemsResults<Item> findResults; 

FindFoldersResults AllItemsFolder= service.FindFolders(WellKnownFolderName.Root, folderFilter, viewFolders); 

if (AllItemsFolder.Count() > 0)//if we have AllItems folder 
{ 
    foreach (Folder folder in AllItemsFolder.Folders) 
    { 
     ItemView itv = new ItemView(int.MaxValue); 
     findResults = service.FindItems(folder.Id, itv); 

     foreach (Item item in findResults) 
     { 
      if (item is EmailMessage) 
      { 
       MessageBox.Show(item.Subject); 
       // Show whether the message is in deleted folder and when message was deleted 
      } 
     } 
    } 
} 

回答

0

正如你所說,我不認爲有這樣的郵件物品的屬性。

我將使用GetFolder操作與衆所周知的文件夾名稱"deleteditems"獲取該文件夾的Id。然後,我會忽略此Id爲ParentFolderId的所有郵件項目。

+0

謝謝Tholle。我能夠使用你的想法,並過濾刪除文件夾中的項目。我將很快發佈代碼片段。如果刪除的文件夾有子文件夾,我必須遍歷每個刪除的文件夾。 – Momer

+0

@Momer甜! 「如果刪除的文件夾有子文件夾,我不得不遍歷每個刪除的文件夾」。聰明,沒有想到那個! – Tholle

相關問題