Filtrovat zprávy z Exchange schránky pomocí WebDav

Filtrování zpráv pomocí WebDav

The ExchangeClient třída poskytuje ListMessages() metoda, která získá všechny zprávy ze schránky. Pro získání pouze zpráv, které splňují určitou podmínku, použijte přetíženou ListMessages() metoda, která přijímá MailQuery třída jako argument.  MailQuery třída poskytuje různé vlastnosti pro specifikaci podmínek, například datum, předmět, odesílatele a příjemce. Navíc API umožňuje aplikovat filtry citlivé na velikost písmen při načítání e‑mailů ze schránky.

Filtrování zpráv

Pro získání filtrovaných zpráv ze schránky:

  1. Připojte se k serveru Exchange.
  2. Vytvořte instanci MailQuery a nastavit požadované vlastnosti.
  3. Zavolejte ExchangeClient.ListMessages() metoda a předat MailQuery v parametrech pro získání pouze filtrovaných zpráv.

Následující úryvek kódu vám ukazuje, jak se připojit k IMAP schránce a získat zprávy, které mají v předmětu řetězec "Newsletter" a byly odeslány dnes.

Filtrovat zprávy podle kritérií

Ukázky kódu výše filtrují zprávy podle předmětu e‑mailu a data. Můžeme filtrovat i podle dalších vlastností. Níže jsou některé příklady nastavení podmínek pomocí MailQuery.

Kritérium filtru dnešní datum

Následující úryvek kódu vám ukazuje, jak filtrovat všechny e-maily na základě dnešního data.

Filtrační kritéria: časové rozmezí

Níže uvedený úryvek kódu ukazuje, jak filtrovat všechny e‑maily podle časového rozmezí.

Filtrační kritéria: konkrétní odesílatel

Níže uvedený úryvek kódu ukazuje, jak filtrovat všechny e‑maily podle konkrétního odesílatele.

Filtrační kritéria: konkrétní doména

Níže uvedený úryvek kódu ukazuje, jak filtrovat všechny e‑maily podle konkrétní domény.

Filtrační kritéria: konkrétní příjemce

Níže uvedený úryvek kódu ukazuje, jak filtrovat všechny e‑maily podle konkrétního příjemce.

Filtrační kritéria: podle MessageID

Níže uvedený úryvek kódu ukazuje, jak filtrovat všechny e‑maily podle MessageID.

Filtrační kritéria: Všechna oznámení o doručení pošty

Níže uvedený úryvek kódu ukazuje, jak filtrovat všechny e‑maily na základě všech oznámení o doručení pošty.

Vytváření složitých dotazů

Pokud různé ExchangeQueryBuilder vlastnosti jsou nastaveny v samostatném příkazu, všechny podmínky jsou splněny. Například pro získání zprávy v určitém časovém rozmezí a od konkrétního hostitele napište tři příkazy:

Kombinování dotazů pomocí AND

Následující úryvek kódu ukazuje, jak kombinovat dotazy pomocí AND.

Kombinování dotazů pomocí OR

ExchangeQueryBuilder poskytuje Or() metoda, která přijímá dva MailQueryinstance jako parametry. Získá zprávy, které odpovídají kterékoliv z dvou zadaných podmínek. Níže uvedený příklad filtruje zprávy, které mají buď ve předmětu slovo „test“, nebo jako odesílatele „noreply@host.com“. Následující úryvek kódu ukazuje, jak kombinovat dotazy pomocí OR.

Filtrování e‑mailů s rozlišením velikosti písmen

E‑mail lze filtrovat s rozlišením velkých a malých písmen zadáním příznaku IgnoreCase ve filtračních kritériích, jak je ukázáno v následujícím úryvku kódu.