Filtrace zpráv pomocí AQS z poštovní schránky Exchange
Rozšířená syntaxe dotazu (AQS) je syntaktický jazyk dotazů používaný Exchange jako alternativa k vyhledávacím filtrům pro vyjádření kritérií vyhledávání. AQS je flexibilnější způsob provádění vyhledávání a doručování výsledků vyhledávání pro všechna běžně používaná pole položek. AQS je také uživatelsky přívětivý, snadno pochopitelný a rychle se učí. Používání AQS je vhodné pro vyhledávání zpráv podle příloh a příjemců.
Vytváření AQS vyhledávacích dotazů
Můžete vytvořit vyhledávací dotaz pomocí AQS takto:
- ExchangeAdvancedSyntaxQueryBuilder, který představuje tvůrce vyhledávacího výrazu na základě Advanced Query Syntax (AQS). nebo
- ExchangeAdvancedSyntaxMailQuery, který vytváří řetězec AQS přímo na základě podporovaných klíčových slov.
Použití tvůrce dotazů
Pro vytvoření vyhledávacího dotazu s ExchangeAdvancedSyntaxQueryBuilder musíte:
-
vytvořit instanci IEWSClient použitím GetEWSClient metoda
-
vytvořit instanci ExchangeAdvancedSyntaxQueryBuilder a nastavte potřebné vlastnosti pro vytvoření dotazu.
-
volat ListMessages nebo ListItems metoda a předat MailQuery instance vrácená GetQuery metoda, jako jeden z jejích parametrů.
Níže uvedený ukázkový kód ukazuje, jak lze výše uvedené kroky provést:
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());
}
Přímé AQS dotazy
Pro vytvoření vyhledávacího dotazu s ExchangeAdvancedSyntaxMailQuery musíte:
-
vytvořit instanci IEWSClient použitím GetEWSClient metoda
-
vytvořit instanci ExchangeAdvancedSyntaxMailQuery a předat řetězec AQS. Viz popis syntaxe.
-
volat ListMessages nebo ListItems metoda a předat ExchangeAdvancedSyntaxMailQuery instanci jako jeden z jeho parametrů.
Níže uvedený ukázkový kód ukazuje, jak lze výše uvedené kroky provést:
using (var client = EWSClient.GetEWSClient(...))
{
ExchangeAdvancedSyntaxMailQuery query = new ExchangeAdvancedSyntaxMailQuery("subject:(product AND report)");
ExchangeMessageInfoCollection messages = client.ListMessages(client.MailboxInfo.InboxUri, query);
}