Filtrar Mensagens da Caixa de Correio do Exchange usando WebDav

Filtrando Mensagens usando WebDav

A classe ExchangeClient fornece o método ListMessages() que obtém todas as mensagens de uma caixa de correio. Para obter apenas mensagens que correspondam a alguma condição, use o método sobrecarregado ListMessages() que aceita a classe MailQuery como argumento. A classe MailQuery fornece várias propriedades para especificar condições, por exemplo, data, assunto, remetente e destinatário. Além disso, a API também permite aplicar filtros de diferenciação entre maiúsculas e minúsculas para recuperar emails da caixa de correio.

Filtrando Mensagens

Para obter mensagens filtradas de uma caixa de correio:

  1. Conecte-se ao servidor Exchange.
  2. Crie uma instância de MailQuery e defina as propriedades desejadas.
  3. Chame o método ExchangeClient.ListMessages() e passe o MailQuery nos parâmetros para obter apenas as mensagens filtradas.

O seguinte trecho de código mostra como se conectar a uma caixa de correio IMAP e obter mensagens que contêm a string “Newsletter” no assunto e foram enviadas hoje.

Filtrar Mensagens com Critérios

Os exemplos de código acima filtram mensagens com base no assunto e na data do email. Podemos filtrar outras propriedades também. Abaixo estão alguns exemplos de configuração das condições usando MailQuery.

Critérios de Filtragem Data de Hoje

O seguinte trecho de código mostra como filtrar todos os emails com base na data de hoje.

Critérios de Filtragem Faixa de Datas

O seguinte trecho de código mostra como filtrar todos os emails com base na faixa de datas.

Critérios de Filtragem Remetente Específico

O seguinte trecho de código mostra como filtrar todos os emails com base em um remetente específico.

Critérios de Filtragem Domínio Específico

O seguinte trecho de código mostra como filtrar todos os emails com base em um domínio específico.

Critérios de Filtragem Destinatário Específico

O seguinte trecho de código mostra como filtrar todos os emails com base em um destinatário específico.

Critérios de Filtragem por MessageID

O seguinte trecho de código mostra como filtrar todos os emails com base no MessageID.

Critérios de Filtragem Todas as Notificações de Entrega de Email

O seguinte trecho de código mostra como filtrar todos os emails com base em todas as notificações de entrega de email.

Construindo Consultas Complexas

Se diferentes propriedades do ExchangeQueryBuilder forem definidas em uma declaração separada, todas as condições são correspondidas. Por exemplo, para obter uma mensagem em uma faixa de datas específica e de um host específico, escreva três declarações:

Combinando Consultas com AND

O seguinte trecho de código mostra como combinar consultas com AND.

Combinando Consultas com OR

ExchangeQueryBuilder fornece o método Or() que aceita duas instâncias de MailQuerycomo parâmetros. Ele obtém mensagens que correspondem a qualquer uma das duas condições especificadas. O exemplo abaixo filtra mensagens que têm a palavra “teste” no assunto ou “noreply@host.com” como remetente. O seguinte trecho de código mostra como combinar consultas com OR.

Filtragem de Emails com Diferenciação entre Maiúsculas e Minúsculas

Os emails podem ser filtrados com base na diferenciação entre maiúsculas e minúsculas, especificando a flag IgnoreCase nos critérios de filtragem, conforme mostrado no seguinte trecho de código.