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.
- Conéctese al servidor Exchange usando IEWSClient.
- Cree un MailQuery o ExchangeQueryBuilder y definir condiciones de filtrado.
- 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:
- Construya un filtro usando MailQueryBuilder.
- Recupere resultados por páginas.
- Itere a través de todas las páginas hasta la última.
- Cuente el número total de mensajes coincidentes.