1

我正在尝试使用 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,但随后在文件夹创建过程中出现错误。还有什么我想念的吗?

4

1 回答 1

2

对身体进行搜索过滤可能会出现问题。这可以追溯到Body内容表中如何处理潜在的大型属性。查询字符串搜索可能会更好,但您不能使用查询字符串来创建搜索文件夹。

于 2015-03-16T15:11:33.230 回答