Filtrar Mensagens Com AQS De Caixa De Correio Exchange

A Synax de Consulta Avançada (AQS) é a sintaxe de consulta utilizada pelo Exchange como uma alternativa aos filtros de pesquisa para expressar critérios de busca. AQS é uma maneira mais flexível de realizar pesquisas e entregar resultados de busca para todos os campos comumente usados nos itens. AQS também é amigável ao usuário, fácil de entender e rápido de dominar. Usar AQS é apropriado para encontrar mensagens por anexos e destinatários.

Criando uma consulta de pesquisa com AQS

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

Criar uma consulta de pesquisa 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("relatório");
    advancedBuilder.HasAttachment.Equals(true);

    var messages = client.ListMessages(client.MailboxInfo.InboxUri, advancedBuilder.GetQuery());
}

Criar uma consulta de pesquisa diretamente usando AQS:

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:(produto E relatório)");
    ExchangeMessageInfoCollection messages = client.ListMessages(client.MailboxInfo.InboxUri, query);
}