我正在尝试使用 EWS API(直接托管或 Web 服务)创建 SearchFolder。我注意到如果我在SearchFilter.ContainsSubstring
上创建一个ItemSchema.Body
,我不会从中得到任何对话。
这是我创建文件夹的方式:
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,但随后在文件夹创建过程中出现错误。还有什么我想念的吗?