Я пытаюсь создать SearchFolder, используя API EWS (управляемый или веб-сервис напрямую). Я заметил, что если я создам SearchFilter.ContainsSubstring
на ItemSchema.Body
, я не получаю от него никаких разговоров.EWS SearchFolder не возвращает значения из тела
вот как я создаю мою папку:
var folder = new SearchFolder(service)
{
DisplayName = topic
};
var searchParameters = folder.SearchParameters;
searchParameters.SearchFilter = new SearchFilter.ContainsSubstring(ItemSchema.Body, topic, ContainmentMode.Substring, ComparisonMode.IgnoreCaseAndNonSpacingCharacters);
searchParameters.RootFolderIds.Add(WellKnownFolderName.Root);
searchParameters.Traversal = SearchFolderTraversal.Deep;
folder.Save(WellKnownFolderName.SearchFolders);
Позже, когда я пытаюсь получить разговоры из этой папки:
service.FindConversation(conversationView, folder.Id);
И это возвращает 0 разговоры.
Я убедился, отправив два сообщения на мой адрес электронной почты, первый со специальным термином только в теме, а второй с тем же термином в теле. Если я создаю SearchFolder с фильтром на ItemSchema.Subject
, я получаю первый разговор, но используя созданный выше SearchFolder, я не получаю ожидаемого результата.
Существуют ли какие-либо ограничения в отношении ContainsSubstring SearchFilter? Я попытался использовать NormalizedBody или TextBody, но потом я получил ошибки в процессе создания папки. Есть ли что-то еще, что мне не хватает?