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 会話を返します。
私は自分のメール アカウントに 2 つのメッセージを送信して確認しました。1 つ目は件名のみに特別な用語を使用し、2 つ目は本文に同じ用語を使用しました。でフィルターを使用して SearchFolder を作成するとItemSchema.Subject、最初の会話が得られますが、上で作成した SearchFolder を使用すると、期待した結果が得られません。

ContainsSubstring SearchFilter に関するいくつかの制限はありますか? NormalizedBody または TextBody を使用してみましたが、フォルダーの作成プロセスでエラーが発生しました。私が見逃しているものは他にありますか?

4

1 に答える 1

2

本文で検索フィルターを実行すると、問題が発生する可能性があります。Bodyこれは、コンテンツ テーブルでのような潜在的に大きなプロパティの処理方法に戻ります。クエリ文字列検索の方が適切に機能する可能性がありますが、クエリ文字列を使用して検索フォルダーを作成することはできません。

于 2015-03-16T15:11:33.230 に答える