ExchangeメールボックスからAQSでメッセージをフィルタリング
高度なクエリ構文 (AQS) AQS は、検索条件を表現するために、検索フィルターの代替として Exchange が使用するクエリ構文です。AQS は、項目の一般的に使用されるすべてのフィールドに対して検索を実行し、検索結果を取得する、より柔軟な方法です。また、AQS はユーザーフレンドリーで、理解しやすく、すぐに習得できます。AQS を使用すると、添付ファイルや受信者でメッセージを検索するのに適しています。
AQS 検索クエリの作成
AQS を使用して検索クエリを作成できます:
- ExchangeAdvancedSyntaxQueryBuilder、Advanced Query Syntax(AQS)に基づく検索式のビルダーを表します。もしくは
- ExchangeAdvancedSyntaxMailQuery、サポートされているキーワードに基づいて直接AQS文字列を作成します。
クエリビルダーの使用
検索クエリを作成するには ExchangeAdvancedSyntaxQueryBuilder 必要です:
-
インスタンスを作成する IEWSClient 使用して GetEWSClient メソッド
-
インスタンスを作成する ExchangeAdvancedSyntaxQueryBuilder そして、クエリを構築するために必要なプロパティを設定します。
-
呼び出し ListMessages または ListItems メソッドに渡す MailQuery インスタンス、返されるのは GetQuery メソッドは、そのパラメータの1つとして。
以下のコードサンプルは、上記の手順をどのように実行できるかを示しています:
using (var client = EWSClient.GetEWSClient(...))
{
var advancedBuilder = new ExchangeAdvancedSyntaxQueryBuilder();
advancedBuilder.From.Equals("Jim Martin");
advancedBuilder.Subject.Contains("report");
advancedBuilder.HasAttachment.Equals(true);
var messages = client.ListMessages(client.MailboxInfo.InboxUri, advancedBuilder.GetQuery());
}
直接AQSクエリ
検索クエリを作成するには ExchangeAdvancedSyntaxMailQuery 必要です:
-
インスタンスを作成する IEWSClient 使用して GetEWSClient メソッド
-
インスタンスを作成する ExchangeAdvancedSyntaxMailQuery そしてAQS文字列を渡します。こちらをご覧ください 構文の説明.
-
呼び出し ListMessages または ListItems メソッドに渡す ExchangeAdvancedSyntaxMailQuery インスタンスをパラメータの1つとして。
以下のコードサンプルは、上記の手順をどのように実行できるかを示しています:
using (var client = EWSClient.GetEWSClient(...))
{
ExchangeAdvancedSyntaxMailQuery query = new ExchangeAdvancedSyntaxMailQuery("subject:(product AND report)");
ExchangeMessageInfoCollection messages = client.ListMessages(client.MailboxInfo.InboxUri, query);
}