Кросс-папочный поиск Exchange с использованием веб-служб Exchange - PullRequest
3 голосов
/ 26 июля 2010

Существует ли способ поиска в Exchange с помощью управляемого API EWS для всех сообщений электронной почты во ВСЕХ папках.Я использую вызов API FindItems, но для этого требуется, чтобы поиск был ограничен одной папкой.

   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));
    }

1 Ответ

3 голосов
/ 28 июля 2010

Чтобы найти элементы по папкам, вы можете создать папку поиска и в SearchFolderParameters установить RootFolderIds для корневой папки почтового ящика, а режим обхода - SearchFolderTraversal.Deep.

...