Filtrar mensajes con AQS desde el buzón de Exchange
La Sintaxis de Consulta Avanzada (AQS) es la sintaxis de consulta utilizada por Exchange como una alternativa a los filtros de búsqueda para expresar criterios de búsqueda. AQS es una forma más flexible de realizar búsquedas y entregar resultados de búsqueda para todos los campos comúnmente utilizados en los elementos. AQS también es fácil de usar, fácil de entender y rápido de dominar. Utilizar AQS es adecuado para encontrar mensajes por adjuntos y destinatarios.
Crear una consulta de búsqueda con AQS
Puede crear una consulta de búsqueda con AQS mediante:
ExchangeAdvancedSyntaxQueryBuilder
, que representa el generador de expresiones de búsqueda basado en la Sintaxis de Consulta Avanzada (AQS). OExchangeAdvancedSyntaxMailQuery
, que crea una cadena AQS directamente basada en las palabras clave admitidas.
Crear una consulta de búsqueda utilizando el generador de consultas
Para crear una consulta de búsqueda con ExchangeAdvancedSyntaxQueryBuilder necesita:
-
crear una instancia de IEWSClient usando el método GetEWSClient
-
crear una instancia de ExchangeAdvancedSyntaxQueryBuilder y establecer las propiedades necesarias para construir una consulta.
-
llamar al método ListMessages o ListItems y pasar la instancia MailQuery devuelta por el método GetQuery como uno de sus parámetros.
El siguiente fragmento de código muestra cómo se pueden lograr los pasos anteriores:
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());
}
Crear una consulta de búsqueda directamente utilizando AQS:
Para crear una consulta de búsqueda con ExchangeAdvancedSyntaxMailQuery necesita:
-
crear una instancia de IEWSClient usando el método GetEWSClient
-
crear una instancia de ExchangeAdvancedSyntaxMailQuery y pasar una cadena AQS. Vea la descripción de la sintaxis.
-
llamar al método ListMessages o ListItems y pasar la instancia ExchangeAdvancedSyntaxMailQuery como uno de sus parámetros.
El siguiente fragmento de código muestra cómo se pueden lograr los pasos anteriores:
using (var client = EWSClient.GetEWSClient(...))
{
ExchangeAdvancedSyntaxMailQuery query = new ExchangeAdvancedSyntaxMailQuery("subject:(product AND report)");
ExchangeMessageInfoCollection messages = client.ListMessages(client.MailboxInfo.InboxUri, query);
}