Filtrar Mensagens com AQS de Caixa de Correio Exchange

Sintaxe de Consulta Avançada (AQS) é a sintaxe de consulta usada pelo Exchange como alternativa aos filtros de pesquisa para expressar critérios de pesquisa. AQS é uma forma mais flexível de executar buscas e entregar resultados de pesquisa para todos os campos comumente usados nos itens. AQS também é fácil de usar, fácil de entender e rápida de dominar. Usar AQS é adequado para localizar mensagens por anexos e destinatários.

Criando Consultas de Pesquisa AQS

Você pode criar uma consulta de pesquisa com AQS por:

Usando o Construtor de Consultas

Para criar uma consulta de pesquisa com ExchangeAdvancedSyntaxQueryBuilder você precisa:

O exemplo de código abaixo mostra como as etapas acima podem ser realizadas:

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());
}

Consultas AQS Diretas

Para criar uma consulta de pesquisa com ExchangeAdvancedSyntaxMailQuery você precisa:

O exemplo de código abaixo mostra como as etapas acima podem ser realizadas:

using (var client = EWSClient.GetEWSClient(...))
{
    ExchangeAdvancedSyntaxMailQuery query = new ExchangeAdvancedSyntaxMailQuery("subject:(product AND report)");
    ExchangeMessageInfoCollection messages = client.ListMessages(client.MailboxInfo.InboxUri, query);
}