3

是否有一种方法可以使用EWS托管API对所有文件夹中的所有电子邮件进行搜索Exchange。我正在使用FindItems API调用 - 但似乎要求将搜索限制在单个文件夹中。使用Exchange Web服务对Exchange进行跨文件夹搜索

private void InternalPurgeProcessFolder(FolderId folderId, ExchangeService service, SearchFilter searchCriteria) { 

     Logger.Info("Processing folder {0}", folderId.FolderName); 

     int pageSize = _runtimeParameters.ExchangeRetrievalPageSize; 
     ItemView itemView = new ItemView(pageSize); 
     itemView.PropertySet = Utils.BasicPropertySet(); 
     const int maxInterationsForTesting = 2; 
     int iterations = 0; 
     FindItemsResults<Item> findResults; 
     do { 
      ++iterations; 
      Logger.Debug("Start of iteration {0}", iterations); 
      findResults = service.FindItems(folderId, searchCriteria, itemView); 
      _dumper.ListDatesAndSubjectsBrief(findResults); 
      itemView.Offset += pageSize; 
     } while ((findResults.MoreAvailable) && (iterations < maxInterationsForTesting)); 
    } 

回答

3

若要跨多个文件夹中的项目,你可以创建一个search folder,并在SearchFolderParameters设置RootFolderIds到邮箱的根文件夹和遍历模式SearchFolderTraversal.Deep。

相关问题