Filtrowanie wiadomości z skrzynki Exchange przy użyciu WebDav

Filtrowanie wiadomości przy użyciu WebDav

Ten ExchangeClient klasa udostępnia ListMessages() metoda, która pobiera wszystkie wiadomości ze skrzynki pocztowej. Aby uzyskać tylko wiadomości spełniające określony warunek, użyj przeciążonej ListMessages() metoda, która przyjmuje MailQuery klasę jako argument. Ta MailQuery klasa udostępnia różne właściwości do określania warunków, np. daty, tematu, nadawcy i odbiorcy. Dodatkowo API umożliwia stosowanie filtrów rozróżniających wielkość liter przy pobieraniu e‑maili ze skrzynki.

Filtrowanie wiadomości

Aby uzyskać filtrowane wiadomości ze skrzynki:

  1. Połącz się z serwerem Exchange.
  2. Utwórz instancję MailQuery i ustawić żądane właściwości.
  3. Wywołaj ExchangeClient.ListMessages() metodę i przekazać MailQuery w parametrze, aby otrzymać tylko przefiltrowane wiadomości.

Poniższy fragment kodu pokazuje, jak połączyć się ze skrzynką pocztową IMAP i pobrać wiadomości, które w temacie zawierają ciąg "Newsletter" i zostały wysłane dzisiaj.

Filtrowanie wiadomości wg kryteriów

Powyższe przykłady kodu filtrują wiadomości na podstawie tematu e‑maila i daty. Możemy również filtrować według innych właściwości. Poniżej znajdują się przykłady ustalania warunków przy użyciu MailQuery.

Kryterium filtru: dzisiejsza data

Poniższy fragment kodu pokazuje, jak filtrować wszystkie e-maile na podstawie dzisiejszej daty.

Kryterium filtru: zakres dat

Poniższy fragment kodu pokazuje, jak filtrować wszystkie e‑maile na podstawie zakresu dat.

Kryterium filtru: konkretny nadawca

Poniższy fragment kodu pokazuje, jak filtrować wszystkie e‑maile na podstawie konkretnego nadawcy.

Kryterium filtru: konkretna domena

Poniższy fragment kodu pokazuje, jak filtrować wszystkie e‑maile na podstawie konkretnej domeny.

Kryterium filtru: konkretny odbiorca

Poniższy fragment kodu pokazuje, jak filtrować wszystkie e‑maile na podstawie określonego odbiorcy.

Kryterium filtru: MessageID

Poniższy fragment kodu pokazuje, jak filtrować wszystkie e‑maile na podstawie MessageID.

Kryterium filtru: Wszystkie powiadomienia o dostawie poczty

Poniższy fragment kodu pokazuje, jak filtrować wszystkie e‑maile na podstawie powiadomień o dostawie poczty.

Budowanie złożonych zapytań

Jeśli różne ExchangeQueryBuilder właściwości są ustawiane w osobnym wyrażeniu, wszystkie warunki są spełnione. Na przykład, aby uzyskać wiadomość w określonym przedziale dat i od konkretnego hosta, napisz trzy instrukcje:

Łączenie zapytań przy użyciu AND

Poniższy fragment kodu pokazuje, jak łączyć zapytania za pomocą AND.

Łączenie zapytań przy użyciu OR

ExchangeQueryBuilder udostępnia Or() metoda przyjmująca dwa MailQueryinstancje jako parametry. Pobiera wiadomości pasujące do dowolnego z dwóch określonych warunków. Poniższy przykład filtruje wiadomości, które mają w temacie słowo „test” lub nadawcą jest „noreply@host.com”. Poniższy fragment kodu pokazuje, jak łączyć zapytania za pomocą OR.

Filtrowanie e‑maili z rozróżnieniem wielkości liter

E‑maile mogą być filtrowane z uwzględnieniem wielkości liter poprzez określenie flagi IgnoreCase w kryteriach filtrowania, jak pokazano w poniższym fragmencie kodu.