Berichten filteren met AQS uit Exchange‑mailbox
Geavanceerde Querysyntaxis (AQS) is de query‑syntaxis die door Exchange wordt gebruikt als alternatief voor zoekfilters om zoekcriteria uit te drukken. AQS is een flexibelere manier om zoekopdrachten uit te voeren en zoekresultaten te leveren voor alle veelgebruikte velden op de items. AQS is bovendien gebruiksvriendelijk, gemakkelijk te begrijpen en snel onder de knie te krijgen. Het gebruik van AQS is geschikt voor het vinden van berichten op basis van bijlagen en ontvangers.
AQS Zoekopdrachten Maken
U kunt een zoekopdracht maken met AQS door:
- ExchangeAdvancedSyntaxQueryBuilder, die de bouwer van zoekexpressies vertegenwoordigt op basis van de Advanced Query Syntax (AQS). of
- ExchangeAdvancedSyntaxMailQuery, die een AQS‑string direct creëert op basis van de ondersteunde trefwoorden.
Query‑builder gebruiken
Om een zoekopdracht te maken met ExchangeAdvancedSyntaxQueryBuilder je moet:
-
maak een instantie van IEWSClient met behulp van GetEWSClient methode
-
maak een instantie van ExchangeAdvancedSyntaxQueryBuilder en stel de benodigde eigenschappen in om een query op te bouwen.
-
aanroep ListMessages of ListItems methode en geef mee MailQuery instance, geretourneerd door GetQuery methode, als een van de parameters.
De code‑voorbeeld hieronder toont hoe de bovenstaande stappen kunnen worden uitgevoerd:
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());
}
Directe AQS‑queries
Om een zoekopdracht te maken met ExchangeAdvancedSyntaxMailQuery je moet:
-
maak een instantie van IEWSClient met behulp van GetEWSClient methode
-
maak een instantie van ExchangeAdvancedSyntaxMailQuery en geef een AQS‑string door. Zie de syntaxisbeschrijving.
-
aanroep ListMessages of ListItems methode en geef mee ExchangeAdvancedSyntaxMailQuery instance als een van de parameters.
De code‑voorbeeld hieronder toont hoe de bovenstaande stappen kunnen worden uitgevoerd:
using (var client = EWSClient.GetEWSClient(...))
{
ExchangeAdvancedSyntaxMailQuery query = new ExchangeAdvancedSyntaxMailQuery("subject:(product AND report)");
ExchangeMessageInfoCollection messages = client.ListMessages(client.MailboxInfo.InboxUri, query);
}