Filtrer les messages avec AQS depuis la boîte aux lettres Exchange
Syntaxe de requête avancée (AQS) est la syntaxe de requête utilisée par Exchange comme alternative aux filtres de recherche pour exprimer les critères de recherche. AQS est une façon plus flexible d’effectuer des recherches et de fournir des résultats de recherche pour tous les champs couramment utilisés sur les éléments. AQS est également convivial, facile à comprendre et rapide à maîtriser. L’utilisation d’AQS convient pour trouver des messages par pièces jointes et destinataires.
Création de requêtes de recherche AQS
Vous pouvez créer une requête de recherche avec AQS :
- ExchangeAdvancedSyntaxQueryBuilder, qui représente le générateur d’expression de recherche basé sur la syntaxe de requête avancée (AQS). ou
- ExchangeAdvancedSyntaxMailQuery, qui crée une chaîne AQS directement basée sur les mots‑clés pris en charge.
Utilisation du générateur de requêtes
Pour créer une requête de recherche avec ExchangeAdvancedSyntaxQueryBuilder vous devez :
-
créer une instance de IEWSClient en utilisant GetEWSClient méthode
-
créer une instance de ExchangeAdvancedSyntaxQueryBuilder et définissez les propriétés nécessaires pour construire une requête.
-
appel ListMessages ou ListItems méthode et passez MailQuery instance, retournée par GetQuery méthode, comme l’un de ses paramètres.
L’exemple de code ci-dessous montre comment les étapes ci‑dessus peuvent être réalisées :
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());
}
Requêtes AQS directes
Pour créer une requête de recherche avec ExchangeAdvancedSyntaxMailQuery vous devez :
-
créer une instance de IEWSClient en utilisant GetEWSClient méthode
-
créer une instance de ExchangeAdvancedSyntaxMailQuery et passez une chaîne AQS. Voir le description de la syntaxe.
-
appel ListMessages ou ListItems méthode et passez ExchangeAdvancedSyntaxMailQuery instance comme l’un de ses paramètres.
L’exemple de code ci-dessous montre comment les étapes ci‑dessus peuvent être réalisées :
using (var client = EWSClient.GetEWSClient(...))
{
ExchangeAdvancedSyntaxMailQuery query = new ExchangeAdvancedSyntaxMailQuery("subject:(product AND report)");
ExchangeMessageInfoCollection messages = client.ListMessages(client.MailboxInfo.InboxUri, query);
}