Filtrar mensajes del buzón Exchange usando WebDav

Filtrado de mensajes usando WebDav

El ExchangeClient class proporciona el ListMessages() método que obtiene todos los mensajes de un buzón. Para obtener solo los mensajes que coincidan con alguna condición, use la sobrecarga ListMessages() método que toma el MailQuery clase como argumento. El MailQuery la clase 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/minúsculas para recuperar correos del buzón.

Filtrado de mensajes

Para obtener mensajes filtrados de un buzón:

  1. Conéctese al servidor Exchange.
  2. Cree una instancia de MailQuery y establecer las propiedades deseadas.
  3. Llame al ExchangeClient.ListMessages() método y pasar el MailQuery en los parámetros para obtener solo los mensajes filtrados.

El siguiente fragmento de código le muestra cómo conectarse a un buzón IMAP y obtener mensajes que tengan la cadena "Newsletter" en el asunto y que fueron enviados hoy.

Filtrar mensajes según criterios

Los ejemplos de código anteriores filtran los mensajes según el asunto y la fecha del correo electrónico. También podemos filtrar por otras propiedades. A continuación se presentan algunos ejemplos de configuración de condiciones usando MailQuery.

Criterio de filtro Fecha de hoy

El siguiente fragmento de código le muestra cómo filtrar todos los correos electrónicos en función de la fecha de hoy.

Criterio de filtro: Rango de fechas

El siguiente fragmento de código muestra cómo filtrar todos los correos electrónicos en base al rango de fechas.

Criterio de filtro: Remitente específico

El siguiente fragmento de código muestra cómo filtrar todos los correos electrónicos en base a un remitente específico.

Criterio de filtro: Dominio específico

El siguiente fragmento de código muestra cómo filtrar todos los correos electrónicos en base a un dominio específico.

Criterio de filtro: Destinatario específico

El siguiente fragmento de código muestra cómo filtrar todos los correos electrónicos en base a un destinatario específico.

Criterio de filtro por MessageID

El siguiente fragmento de código muestra cómo filtrar todos los correos electrónicos en base al MessageID.

Criterio de filtro: Todas las notificaciones de entrega de correo

El siguiente fragmento de código muestra cómo filtrar todos los correos electrónicos en base a todas las notificaciones de entrega de correo.

Construir consultas complejas

Si diferentes ExchangeQueryBuilder las propiedades se establecen en una sentencia separada, todas las condiciones se cumplen. Por ejemplo, para obtener un mensaje en un rango de fechas específico y de un host concreto, escriba tres sentencias:

Combinar consultas con AND

El siguiente fragmento de código muestra cómo combinar consultas con AND.

Combinar consultas con OR

ExchangeQueryBuilder proporciona el Or() método que toma dos MailQueryinstancias como parámetros. Obtiene mensajes que coinciden con cualquiera de las dos condiciones especificadas. El siguiente ejemplo filtra mensajes que tienen la palabra “test” en el asunto o “noreply@host.com” como remitente. El siguiente fragmento de código muestra cómo combinar consultas con OR.

Filtrado de correo electrónico sensible a mayúsculas

Los correos electrónicos pueden filtrarse según la sensibilidad a mayúsculas especificando la bandera IgnoreCase en los criterios de filtro, como se muestra en el siguiente fragmento de código.