WebDav を使用した Exchange メールボックスからのメッセージフィルタリング

WebDav を使用したメッセージのフィルタリング

この ExchangeClient class は以下を提供します ListMessages() メールボックスからすべてのメッセージを取得するメソッドです。条件に合致するメッセージだけを取得するには、オーバーロードされた ListMessages() メソッドは次を受け取ります MailQuery クラスを引数として使用します。 MailQuery このクラスは、日付、件名、送信者、受信者などの条件を指定するためのさまざまなプロパティを提供します。さらに、API はメールボックスからメールを取得する際に大文字小文字の区別フィルタを適用することも可能です。

メッセージのフィルタリング

メールボックスからフィルタされたメッセージを取得するには:

  1. Exchangeサーバーに接続します。
  2. インスタンスを作成する MailQuery そして、必要なプロパティを設定します。
  3. 呼び出す ExchangeClient.ListMessages() メソッドに渡す MailQuery パラメータでフィルタされたメッセージのみ取得するようにします。

以下のコードスニペットは、IMAPメールボックスに接続し、件名に「Newsletter」という文字列が含まれ、かつ本日送信されたメッセージを取得する方法を示しています。

条件でメッセージをフィルタリング

上記のコードサンプルは、メールの 件名 と 日付 に基づいてメッセージをフィルタリングします。他のプロパティでもフィルタリングできます。以下は、条件設定に 使用する例です。 MailQuery.

フィルタ条件 今日の日付

以下のコードスニペットは、本日の日付に基づいてすべてのメールをフィルタリングする方法を示しています。

フィルタ条件:日付範囲

以下のコードスニペットは、日付範囲に基づいてすべてのメールをフィルタリングする方法を示します。

フィルタ条件:特定の送信者

以下のコードスニペットは、特定の送信者に基づいてすべてのメールをフィルタリングする方法を示します。

フィルタ条件:特定のドメイン

以下のコードスニペットは、特定のドメインに基づいてすべてのメールをフィルタリングする方法を示します。

フィルタ条件:特定の受信者

以下のコードスニペットは、特定の受信者に基づいてすべてのメールをフィルタリングする方法を示します。

フィルタ条件:MessageID による

以下のコードスニペットは、MessageID に基づいてすべてのメールをフィルタリングする方法を示します。

フィルタ条件:すべてのメール配信通知

以下のコードスニペットは、すべてのメール配信通知に基づいてすべてのメールをフィルタリングする方法を示します。

複雑なクエリの構築

異なる場合 ExchangeQueryBuilder プロパティを別々のステートメントで設定すると、すべての条件が一致します。たとえば、特定の日付範囲かつ特定のホストからのメッセージを取得するには、次のように3つのステートメントを書きます:

AND を使用したクエリの組み合わせ

以下のコードスニペットは、ANDでクエリを組み合わせる方法を示しています。

OR を使用したクエリの組み合わせ

ExchangeQueryBuilder 提供します Or() 2つを受け取るメソッド MailQueryパラメータとしてインスタンスを使用します。2 つの条件のいずれかに一致するメッセージを取得します。以下の例は、件名に “test” が含まれるか、送信者が “noreply@host.com” のいずれかのメッセージをフィルタリングします。以下のコードスニペットは、OR を使用してクエリを組み合わせる方法を示しています。

大文字小文字を区別したメールフィルタリング

以下のコードスニペットに示すように、フィルタ条件でIgnoreCaseフラグを指定することで、大小文字の区別に基づいてメールをフィルタリングできます。