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:
ExchangeAdvancedSyntaxQueryBuilder
, que representa o construtor de expressão de pesquisa baseado na Sintaxe de Consulta Avançada (AQS). OuExchangeAdvancedSyntaxMailQuery
, que cria uma string AQS diretamente com base nas palavras-chave suportadas.
Criar uma consulta de pesquisa usando o construtor de consultas
Para criar uma consulta de pesquisa com ExchangeAdvancedSyntaxQueryBuilder você precisa:
-
criar uma instância de IEWSClient usando o método GetEWSClient
-
criar uma instância de ExchangeAdvancedSyntaxQueryBuilder e definir as propriedades necessárias para construir uma consulta.
-
chamar o método ListMessages ou ListItems e passar a instância de MailQuery retornada pelo método GetQuery, como um de seus parâmetros.
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:
-
criar uma instância de IEWSClient usando o método GetEWSClient
-
criar uma instância de ExchangeAdvancedSyntaxMailQuery e passar uma string AQS. Veja a descrição da sintaxe.
-
chamar o método ListMessages ou ListItems e passar a instância de ExchangeAdvancedSyntaxMailQuery como um de seus parâmetros.
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);
}