Filtrování a řazení zpráv v poštovní schránce Exchange Server pomocí EWS
Filtrování a řazení zpráv pomocí EWS
The IEWSClient rozhraní 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 zadání podmínek, například datum, předmět, odesílatele a příjemce. Navíc API umožňuje aplikovat filtry rozlišující velikost písmen při načítání e-mailů ze schránky.
Filtrovat zprávy podle kritérií
Pro získání filtrovaných zpráv ze schránky:
- Připojte se k serveru Exchange.
- Vytvořte instanci MailQuery a nastavit požadované vlastnosti.
- Zavolejte IEWSClient.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.
Podle dnešního data
Následující úryvek kódu vám ukazuje, jak filtrovat všechny e-maily na základě dnešního data.
Podle rozsahu dat
Níže uvedený úryvek kódu ukazuje, jak filtrovat všechny e‑maily podle časového rozmezí.
Podle odesílatele
Níže uvedený úryvek kódu ukazuje, jak filtrovat všechny e‑maily podle konkrétního odesílatele.
Podle domény
Níže uvedený úryvek kódu ukazuje, jak filtrovat všechny e‑maily podle konkrétní domény.
Podle příjemce
Níže uvedený úryvek kódu ukazuje, jak filtrovat všechny e‑maily podle konkrétního příjemce.
Podle ID zprávy
Níže uvedený úryvek kódu ukazuje, jak filtrovat všechny e‑maily podle MessageID.
Podle upozornění na 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.
Podle velikosti zprávy
Vytváření složitých dotazů
Pokud různé MailQueryBuilder 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
MailQueryBuilder poskytuje Or() metoda, která přijímá dva MailQuery instance 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.
Filtrování zpráv s podporou stránkování
Řadit filtrované zprávy ve vzestupném/sestupném pořadí
Filtrování e‑mailů může být podpořeno řazením zpráv ve vzestupném/sestupném pořadí. V tomto případě, OrderBy metoda se používá k určení pořadí, ve kterém jsou výsledky vyhledávání e‑mailů řazeny pomocí třídy MailQueryBuilder. Tato metoda vám umožňuje definovat kritéria řazení pro vyhledávací dotaz, přičemž specifikuje, zda mají být výsledky řazeny vzestupně nebo sestupně podle konkrétní vlastnosti.
Metoda přijímá parametr ascending, který určuje směr řazení pro zadanou vlastnost. Pokud je parametr ascending nastaven na true, výsledky vyhledávání budou seřazeny vzestupně. Naopak, pokud je parametr ascending nastaven na false, výsledky budou seřazeny sestupně.
MailQueryBuilder builder = new MailQueryBuilder();
builder.Subject.Contains("Report");
builder.InternalDate.Since(new DateTime(2020, 1, 1));
builder.Subject.OrderBy(true); // sort the subject ascending
builder.InternalDate.OrderBy(false); // sort the date descending
MailQuery query = builder.GetQuery();
// Get list of messages
ExchangeMessageInfoCollection messages = client.ListMessages(client.MailboxInfo.InboxUri, query, false);
Ve výše uvedeném úryvku kódu je metoda OrderBy použita dvakrát, jednou pro předmět a jednou pro datum e‑mailů. Výsledkem provedení metody ListMessages s předaným požadavkem bude seznam zpráv, jejichž předmět obsahuje slovo „Report“ a které byly přijaty ke specifikovanému datu nebo později. Současně budou výsledky seřazeny podle předmětu vzestupně. To znamená, že zprávy budou seřazeny abecedně od A do Z podle předmětu. Navíc budou výsledky seřazeny podle data sestupně, což znamená, že položky budou uspořádány od nejnovějších po nejstarší.
Filtrování zpráv pomocí AQS
S pomocí Aspose.Email pro .NET mohou uživatelé využít výkonné funkce syntaxi pokročilých dotazů (AQS) k filtrování zpráv přímo z poštovní schránky Exchange. AQS poskytuje robustní a intuitivní způsob vytváření dotazů, které mohou přesně cílit e‑maily na základě konkrétních kritérií, jako jsou datum, odesílatel a předmět. Pro podrobnější informace o její integraci do vašich procesů filtrování e‑mailů a komplexní ukázky kódu implementace filtrování zpráv pomocí AQS s Aspose.Email pro .NET se prosím podívejte na Filtrace zpráv pomocí AQS z poštovní schránky Exchange článek.