Filtrar Mensagens da Caixa de Correio Exchange

Aspose.Email for C++ permite que desenvolvedores filtrem mensagens em uma caixa de correio Exchange usando IEWSClient, MailQuery, e ExchangeQueryBuilder. Você pode filtrar mensagens por data, remetente, domínio, MessageID, notificações de entrega e muitos outros critérios.

Para recuperar mensagens de uma pasta para processamento adicional, o IEWSClient. tem os seguintes métodos:

  • ListMessages() - Obtém todas as mensagens de uma caixa de correio.
  • ListMessages() sobrecarga - Retorna somente mensagens que correspondem a condições específicas. Aceita um MailQuery que define regras de filtragem como palavras‑chave no assunto, intervalos de datas e filtragem baseada em endereço.

Filtrar Mensagens com IEWSClient

O exemplo de código a seguir demonstra como consultar e recuperar e‑mails específicos de um Exchange Server usando Exchange Web Services (EWS) com Aspose.Email para C++. Ele mostra o processo completo de conexão a um servidor Exchange (Office 365 neste caso), construção de uma consulta de busca para encontrar mensagens com "Newsletter" no assunto que chegaram hoje, execução da consulta na caixa de entrada, recuperação das mensagens correspondentes e tratamento adequado do ciclo de vida da conexão com tratamento de erros.

  1. Conectar ao servidor Exchange usando IEWSClient.
  2. Crie um MailQuery ou ExchangeQueryBuilder e definir condições de filtragem.
  3. Chame ListMessages(folderUri, query) para obter os resultados filtrados.

Filtrar mensagens por critério

O exemplo de código acima filtra mensagens com base no assunto do e‑mail e na data. Você também pode filtrar por outras propriedades. Abaixo estão alguns exemplos de como definir as condições usando MailQuery.

Filtrar por Data de Hoje

O exemplo de código a seguir demonstra como construir uma consulta para encontrar e‑mails que chegaram hoje.

Filtrar por Intervalo de Datas

O exemplo de código a seguir demonstra como construir uma consulta para encontrar e‑mails que chegaram nos últimos 7 dias.

Filtrar por Remetente Específico

O exemplo de código a seguir demonstra como construir uma consulta para encontrar e‑mails de um remetente específico.

Filtrar por Domínio

O exemplo de código a seguir demonstra como construir uma consulta para encontrar e‑mails de um domínio específico.

Filtrar por Destinatário

O exemplo de código a seguir demonstra como construir uma consulta para encontrar e‑mails enviados a um destinatário específico.

Filtrar por MessageID

O exemplo de código a seguir demonstra como construir uma consulta para encontrar um e‑mail específico pelo seu MessageId.

Filtrar Notificações de Entrega de E‑mail

O exemplo de código a seguir demonstra como construir uma consulta para encontrar Notificações de Entrega de E‑mail (MDNs).

Filtrar por Tamanho da Mensagem

O exemplo de código a seguir demonstra como construir uma consulta para encontrar e‑mails maiores que um tamanho específico.

Construir Consultas Complexas

Ao usar MailQueryBuilder ou ExchangeQueryBuilder, cada propriedade que você define cria uma condição de filtragem. Se essas condições forem definidas em instruções separadas, elas são combinadas usando AND lógico, significando que todas as condições devem ser correspondidas para que a mensagem seja retornada.

Isso permite que desenvolvedores criem filtros precisos, como:

  • E‑mails dentro de um intervalo de datas
  • E‑mails de um domínio específico
  • E‑mails que correspondem a múltiplos critérios simultaneamente

Combinar consultas com AND

Usar várias propriedades do construtor em sequência cria automaticamente uma operação AND.

O exemplo a seguir recupera mensagens que:

  • Vem de um domínio específico
  • Chegou antes de hoje
  • Chegou nos últimos sete dias

Combinar consultas com OR

Para corresponder mensagens que satisfaçam qualquer uma das duas condições, use o método Or().

O exemplo a seguir obtém mensagens que:

  • Contêm “test” no assunto, ou
  • Foram enviadas por “noreply@host.com”

Filtragem de e‑mail sensível a maiúsculas/minúsculas

Você pode aplicar filtragem sensível ou insensível a maiúsculas ao consultar mensagens de uma caixa de correio Exchange. Para controlar esse comportamento, use o sinalizador IgnoreCase disponível nos métodos de filtragem. Passar true habilita a correspondência sem diferenciar maiúsculas.

O exemplo abaixo filtra mensagens que:

  • Contém a palavra "Newsletter" no assunto (não diferencia maiúsculas/minúsculas)
  • Chegou hoje

Paginação na Filtragem de Mensagens

Ao trabalhar com caixas de correio Exchange grandes, a paginação permite recuperar mensagens em lotes menores e gerenciáveis. O ListMessagesByPage método de IEWSClient retorna resultados página por página com base em um tamanho de página e critérios de consulta especificados.

O exemplo abaixo demonstra como:

  1. Crie um filtro usando MailQueryBuilder.
  2. Recupere resultados em páginas.
  3. Percorra todas as páginas até a última.
  4. Conte o total de mensagens correspondentes.