Filtrar mensajes de la bandeja de entrada de Exchange usando WebDav
Filtrando mensajes usando WebDav
La clase ExchangeClient proporciona el método ListMessages() que obtiene todos los mensajes de una bandeja de entrada. Para obtener solo los mensajes que coincidan con alguna condición, utiliza el método sobrecargado ListMessages() que toma la clase MailQuery como argumento. La clase MailQuery proporciona varias propiedades para especificar condiciones, por ejemplo, fecha, asunto, remitente y destinatario. Además, la API también permite aplicar filtros de sensibilidad a mayúsculas y minúsculas para recuperar correos electrónicos de la bandeja de entrada.
Filtrando mensajes
Para obtener mensajes filtrados de una bandeja de entrada:
- Conéctate al servidor de Exchange.
- Crea una instancia de MailQuery y configura las propiedades deseadas.
- Llama al método ExchangeClient.ListMessages() y pasa el MailQuery en los parámetros para obtener solo los mensajes filtrados.
El siguiente fragmento de código te muestra cómo conectarte a una bandeja de entrada IMAP y obtener mensajes que contienen la cadena “Newsletter” en el asunto y fueron enviados hoy.
Filtrar mensajes por criterio
Los ejemplos de código anteriores filtran mensajes en función del asunto del correo electrónico y la fecha. También podemos filtrar por otras propiedades. A continuación se presentan algunos ejemplos de establecimiento de condiciones utilizando MailQuery.
Criterio de filtrado Fecha de hoy
El siguiente fragmento de código te muestra cómo filtrar todos los correos electrónicos en función de la fecha de hoy.
Criterio de filtrado Rango de fechas
El siguiente fragmento de código te muestra cómo filtrar todos los correos electrónicos en función del rango de fechas.
Criterio de filtrado Remitente específico
El siguiente fragmento de código te muestra cómo filtrar todos los correos electrónicos en función de un remitente específico.
Criterio de filtrado Dominio específico
El siguiente fragmento de código te muestra cómo filtrar todos los correos electrónicos en función de un dominio específico.
Criterio de filtrado Destinatario específico
El siguiente fragmento de código te muestra cómo filtrar todos los correos electrónicos en función de un destinatario específico.
Criterio de filtrado Por MessageID
El siguiente fragmento de código te muestra cómo filtrar todos los correos electrónicos en función de MessageID.
Criterio de filtrado Todas las notificaciones de entrega de correo
El siguiente fragmento de código te muestra cómo filtrar todos los correos electrónicos en función de todas las notificaciones de entrega de correo.
Construyendo consultas complejas
Si diferentes propiedades de ExchangeQueryBuilder se establecen en una declaración separada, se cumplen todas las condiciones. Por ejemplo, para obtener un mensaje en un rango de fechas particular y de un host específico, escribe tres declaraciones:
Combinando consultas con AND
El siguiente fragmento de código te muestra cómo combinar consultas con AND.
Combinando consultas con OR
ExchangeQueryBuilder proporciona el método Or() que toma dos instancias de MailQuery como parámetros. Obtiene mensajes que coinciden con cualquiera de las dos condiciones especificadas. El ejemplo a continuación filtra mensajes que tienen la palabra “test” en el asunto o “noreply@host.com” como remitente. El siguiente fragmento de código te muestra cómo combinar consultas con OR.
Filtrado de correos electrónicos con sensibilidad a mayúsculas y minúsculas
Los correos electrónicos se pueden filtrar en función de la sensibilidad a mayúsculas y minúsculas especificando la bandera IgnoreCase en los criterios de filtrado, como se muestra en el siguiente fragmento de código.