Filtrar mensajes del buzón Exchange

Aspose.Email para C++ permite a los desarrolladores filtrar mensajes en un buzón de Exchange usando IEWSClient, MailQuery, y ExchangeQueryBuilder. Puede filtrar mensajes por fecha, remitente, dominio, MessageID, notificaciones de entrega y muchos otros criterios.

Para recuperar mensajes de una carpeta para su posterior procesamiento, el IEWSClient. tiene los siguientes métodos:

  • ListMessages() - Obtiene todos los mensajes de un buzón.
  • ListMessages() sobrecarga - Devuelve solo los mensajes que coinciden con condiciones específicas. Acepta un MailQuery que define reglas de filtrado como palabras clave del asunto, rangos de fechas y filtrado basado en direcciones.

Filtrar mensajes con IEWSClient

El siguiente ejemplo de código demuestra cómo consultar y recuperar correos electrónicos específicos de un Exchange Server usando Exchange Web Services (EWS) con Aspose.Email para C++. Muestra el proceso completo de conectar a un servidor Exchange (Office 365 en este caso), construir una consulta de búsqueda para encontrar mensajes con "Newsletter" en el asunto que llegaron hoy, ejecutar la consulta contra la bandeja de entrada, recuperar los mensajes coincidentes y manejar adecuadamente el ciclo de vida de la conexión con manejo de errores.

  1. Conéctese al servidor Exchange usando IEWSClient.
  2. Cree un MailQuery o ExchangeQueryBuilder y definir condiciones de filtrado.
  3. Llame a ListMessages(folderUri, query) para obtener los resultados filtrados.

Filtrar mensajes según criterios

El ejemplo de código anterior filtra los mensajes basándose en el asunto del correo electrónico y la fecha. También puede filtrar por otras propiedades. A continuación se presentan algunos ejemplos de cómo establecer las condiciones usando MailQuery.

Filtrar por la fecha de hoy

El siguiente ejemplo de código muestra cómo construir una consulta para encontrar correos electrónicos que llegaron hoy.

Filtrar por rango de fechas

El siguiente ejemplo de código muestra cómo construir una consulta para encontrar correos electrónicos que llegaron en los últimos 7 días.

Filtrar por remitente específico

El siguiente ejemplo de código muestra cómo construir una consulta para encontrar correos electrónicos de un remitente específico.

Filtrar por dominio

El siguiente ejemplo de código muestra cómo construir una consulta para encontrar correos electrónicos de un dominio específico.

Filtrar por destinatario

El siguiente ejemplo de código muestra cómo construir una consulta para encontrar correos electrónicos enviados a un destinatario específico.

Filtrar por MessageID

El siguiente ejemplo de código muestra cómo construir una consulta para encontrar un correo electrónico específico por su MessageId.

Filtrar Notificaciones de entrega de correo

El siguiente ejemplo de código muestra cómo construir una consulta para encontrar Notificaciones de entrega de correo (MDN).

Filtrar por tamaño del mensaje

El siguiente ejemplo de código muestra cómo construir una consulta para encontrar correos electrónicos mayores que un tamaño específico.

Construir consultas complejas

Al usar MailQueryBuilder o ExchangeQueryBuilder, cada propiedad que establezca crea una condición de filtrado. Si estas condiciones se definen en sentencias separadas, se combinan usando AND lógico, lo que significa que todas las condiciones deben coincidir para que se devuelva un mensaje.

Esto permite a los desarrolladores crear filtros precisos como:

  • Correos dentro de un rango de fechas
  • Correos de un dominio específico
  • Correos que coinciden con varios criterios simultáneamente

Combinar consultas con AND

Usar varias propiedades del constructor en secuencia crea automáticamente una operación AND.

El siguiente ejemplo recupera mensajes que:

  • Proceden de un dominio específico
  • Llegó antes de hoy
  • Llegó en los últimos siete días

Combinar consultas con OR

Para que coincidan los mensajes que cumplan cualquiera de dos condiciones, use el método Or().

El siguiente ejemplo obtiene mensajes que:

  • Contienen “test” en el asunto, o
  • Fueron enviados por “noreply@host.com”

Filtrado de correo electrónico sensible a mayúsculas

Puede aplicar filtrado sensible o insensible a mayúsculas cuando consulta mensajes de un buzón de Exchange. Para controlar este comportamiento, use la bandera IgnoreCase disponible en los métodos de filtrado. Pasar true habilita la coincidencia insensible a mayúsculas.

El ejemplo a continuación filtra los mensajes que:

  • Contienen la palabra "Newsletter" en el asunto (sin distinción de mayúsculas/minúsculas)
  • Llegó hoy

Paginación en filtrado de mensajes

Al trabajar con buzones de Exchange grandes, la paginación le permite recuperar mensajes en lotes más pequeños y manejables. El ListMessagesByPage método de IEWSClient devuelve resultados página por página basados en un tamaño de página especificado y criterios de consulta.

El ejemplo a continuación muestra cómo:

  1. Construya un filtro usando MailQueryBuilder.
  2. Recupere resultados por páginas.
  3. Itere a través de todas las páginas hasta la última.
  4. Cuente el número total de mensajes coincidentes.