Trabajando con Mensajes del Servidor

Obteniendo Información de la Buzón de Correo

Podemos obtener información sobre la bandeja de entrada, como el número de mensajes y el tamaño de la bandeja, utilizando los métodos GetMailBoxSize y GetMailBoxInfo de la clase Pop3Client.

También es posible obtener el número de mensajes usando la propiedad MessageCount y el tamaño usando la propiedad OccupiedSize de la clase Pop3MailBoxInfo. El siguiente código de ejemplo muestra cómo obtener información sobre la bandeja de entrada. Muestra cómo:

  1. Crear un Pop3Client.
  2. Conectarse a un servidor POP3.
  3. Obtener el tamaño de la bandeja de entrada.
  4. Obtener información de la bandeja de entrada.
  5. Obtener el número de mensajes en la bandeja de entrada.
  6. Obtener el tamaño ocupado.

Obteniendo el conteo de correos en la bandeja de entrada

El siguiente fragmento de código te muestra cómo contar los mensajes de correo en una bandeja de entrada.

Aspose.Email permite a los desarrolladores trabajar con correos electrónicos de muchas maneras diferentes. Por ejemplo, pueden recuperar información del encabezado antes de decidir si descargar un correo electrónico. O pueden recuperar correos electrónicos de un servidor y guardarlos sin analizarlos (más rápido) o después de analizarlos (más lento). Este artículo muestra cómo recuperar y convertir correos electrónicos.

Recuperando Información de Encabezados de Correo Electrónico

Los encabezados de correo electrónico pueden darnos información sobre un mensaje de correo que podemos usar para decidir si recuperar o no el mensaje completo. Típicamente, la información del encabezado contiene el remitente, el asunto, la fecha de recepción, etc. (Los encabezados de correo electrónico se describen en detalle en Personalizando Encabezados de Correo Electrónico. Ese tema es específicamente sobre el envío de un correo electrónico con SMTP, pero la información del contenido del encabezado sigue siendo válida para los correos electrónicos POP3). Los siguientes ejemplos muestran cómo recuperar encabezados de correo de un servidor POP3 por el número de secuencia del mensaje.

Recuperando Mensajes de Correo Electrónico

La clase Pop3Client proporciona la capacidad de recuperar mensajes de correo electrónico del servidor POP3 y analizarlos en una instancia de MailMessage con la ayuda de los componentes MailMessage. La clase MailMessage contiene varias propiedades y métodos para manipular el contenido del correo electrónico. Al usar el método FetchMessage de la clase Pop3Client, puedes obtener una instancia de MailMessage directamente desde el servidor POP3. El siguiente fragmento de código te muestra cómo recuperar un mensaje de correo electrónico completo del servidor POP3.

Recuperando Información de Resumen del Mensaje usando Id Único

El cliente POP3 de la API puede recuperar información de resumen del mensaje desde el servidor usando el id único del mensaje. Esto proporciona acceso rápido a la información breve del mensaje sin tener que recuperar primero el mensaje completo del servidor. El siguiente fragmento de código te muestra cómo recuperar información de resumen del mensaje.

Listando Mensajes con MultiConexión

Pop3Client proporciona una propiedad UseMultiConnection que puede ser utilizada para crear múltiples conexiones para operaciones pesadas. También puedes establecer el número de conexiones que se utilizarán durante el modo de multi-conexión usando Pop3Client.ConnectionsQuantity. El siguiente fragmento de código demuestra el uso del modo de multi-conexión para listar mensajes y compara su rendimiento con el modo de conexión única.

Recuperando Mensajes del Servidor y Guardando en Disco

Guardar Mensaje en Disco sin Analizar

Si deseas descargar mensajes de correo del servidor POP3 sin analizarlos, utiliza la función SaveMessage de la clase Pop3Client. La función SaveMessage no analiza el mensaje de correo, por lo que es más rápido que la función FetchMessage. El siguiente fragmento de código muestra cómo guardar un mensaje por su número de secuencia. En este caso, el método SaveMessage guarda el mensaje en el formato EML original sin analizarlo.

Analizar el Mensaje Antes de Guardar

El siguiente fragmento de código utiliza el método FetchMessage de Pop3Client para recuperar un mensaje de un servidor POP3 por su número de secuencia, y luego guarda el mensaje en disco usando el asunto como nombre de archivo.

Recuperación Agrupada de Mensajes

Pop3Client proporciona un método FetchMessages que acepta números de secuencia o ID únicos iterables y devuelve una lista de MailMessage. El siguiente fragmento de código demuestra el uso del método FetchMessages para recuperar mensajes por números de secuencia y ID únicos.

Filtrando Mensajes por Remitente, Destinatario o Fecha

La clase Pop3Client, descrita en Conectando a un Servidor POP3, proporciona el método ListMessages() que obtiene todos los mensajes de una bandeja de entrada. Para obtener solo los mensajes que coinciden con alguna condición, utiliza el método sobrecargado ListMessages() que toma MailQuery como argumento. La clase MailQuery proporciona varias propiedades para especificar las condiciones de consulta, por ejemplo, fecha, asunto, remitente, destinatario, etc. La clase MailQueryBuilder se usa para construir la expresión de búsqueda. Primero, se establecen todas las condiciones y restricciones y luego MailQuery se completa con la consulta desarrollada por MailQueryBuilder. El objeto de la clase MailQuery es utilizado por Pop3Client para extraer la información filtrada del servidor. Este artículo muestra cómo filtrar mensajes de correo electrónico de una bandeja de entrada. El primer ejemplo ilustra cómo filtrar mensajes en función de la fecha y el asunto. También mostramos cómo filtrar según otros criterios y cómo construir consultas más complejas. También muestra la aplicación de un filtro de fecha y hora para recuperar correos electrónicos específicos de la bandeja de entrada. Además, también se muestra cómo aplicar filtros que diferencian mayúsculas y minúsculas.

Filtrando Mensajes de la Bandeja de Entrada

Para filtrar mensajes de una bandeja de entrada:

  1. Conéctate e inicia sesión en un servidor POP3.
  2. Crea una instancia de MailQuery y establece las propiedades deseadas.
  3. Llama al método Pop3Client.ListMessages(MailQuery query) y pasa el MailQuery como parámetro para obtener solo los mensajes filtrados.

El siguiente fragmento de código te muestra cómo conectarte a una bandeja de entrada POP3 y obtener los mensajes que llegaron hoy y tienen la palabra “newsletter” en el asunto.

Obteniendo Mensajes que Cumplen Criterios Específicos

Los ejemplos de código anteriores muestran cómo puedes filtrar mensajes en función del asunto del correo y la fecha. También podemos usar otras propiedades para establecer otras condiciones admitidas. A continuación se presentan algunos ejemplos de establecer condiciones usando MailQuery.

Los fragmentos de código que siguen muestran cómo filtrar correos electrónicos según otros criterios:

  • Encontrar correos electrónicos entregados hoy.
  • Encontrar correos electrónicos recibidos dentro de un rango.
  • Encontrar correos electrónicos de un remitente específico.
  • Encontrar correos electrónicos enviados desde un dominio específico.
  • Encontrar correos electrónicos enviados a un destinatario específico.

Fecha de Hoy

El siguiente fragmento de código te muestra cómo encontrar correos electrónicos entregados hoy.

Rango de Fechas

El siguiente fragmento de código te muestra cómo encontrar correos electrónicos recibidos dentro de un rango.

Remitente Específico

El siguiente fragmento de código te muestra cómo encontrar correos electrónicos de un remitente específico.

Dominio Específico

El siguiente fragmento de código te muestra cómo encontrar correos electrónicos enviados desde un dominio específico.

Destinatario Específico

El siguiente fragmento de código te muestra cómo encontrar correos electrónicos enviados a un destinatario específico.

Construyendo Consultas Complejas

Si se establecen diferentes propiedades de MailQueryBuilder en declaraciones separadas, se cumplirán todas las condiciones. Por ejemplo, si queremos obtener mensajes entre un rango de fechas y de un host específico, necesitamos escribir tres declaraciones.

Combinando Consultas con AND

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

Combinando Consultas con OR

MailQueryBuilder proporciona el método Or() que toma dos instancias de MailQuery como parámetros. Obtiene los mensajes que coinciden con cualquiera de las dos condiciones especificadas. El siguiente fragmento de código muestra cómo filtrar mensajes que tengan “test” en el asunto o “noreply@host.com” como remitente. El siguiente fragmento de código te muestra cómo combinar consultas usando OR.

Aplicando Filtros Sensibles a Mayúsculas y Minúsculas

La API también proporciona la capacidad de filtrar correos electrónicos de la bandeja de entrada basándose en un criterio sensible a mayúsculas y minúsculas. Los siguientes métodos ofrecen la capacidad de buscar correos electrónicos especificando una bandera sensible a mayúsculas y minúsculas.

  • Método Aspose.Email.StringComparisonField.Contains(string value, bool ignoreCase)
  • Método Aspose.Email.StringComparisonField.Equals(string value, bool ignoreCase)
  • Método Aspose.Email.StringComparisonField.NotContains(string value, bool ignoreCase)
  • Método Aspose.Email.StringComparisonField.NotEquals(string value, bool ignoreCase)