Trabajando con el Buzón de Exchange y Mensajes

Obteniendo Información del Buzón Usando EWS

Puedes obtener información del buzón de un servidor Exchange llamando al método GetMailboxInfo de la clase IEWSClient. Retorna una instancia del tipo ExchangeMailboxInfo. Obtén información del buzón desde propiedades como MailboxUri, InboxUri, y DraftsUri. Este artículo muestra cómo acceder a la información del buzón usando los Servicios Web de Exchange.

Para conectarte al servidor Exchange usando los Servicios Web de Exchange (EWS), utiliza la clase IEWSClient. Esta clase utiliza EWS para conectarse y gestionar elementos en un servidor Exchange. El siguiente fragmento de código te muestra cómo obtener información del buzón usando los servicios web de exchange.

Enviando Mensajes de Correo Electrónico

Puedes enviar mensajes de correo electrónico usando un servidor Exchange con el método IEWSClient->Send() que acepta una instancia de MailMessage como parámetro y envía el correo. Este artículo explica cómo enviar mensajes de correo electrónico usando los Servicios Web de Exchange.

El siguiente fragmento de código te muestra cómo enviar mensajes de correo electrónico usando IEWSClient.

Leyendo Correos Electrónicos del Buzón de Otro Usuario

Algunas cuentas en los servidores Exchange tienen el derecho de acceder a múltiples buzones, y algunos usuarios tienen múltiples cuentas de correo electrónico en el mismo servidor Exchange. En ambos casos, los usuarios pueden acceder a los buzones de otros usuarios usando Aspose.Email. Esta API proporciona un mecanismo para acceder a carpetas y correos electrónicos de otros buzones usando la clase IEWSClient. Esta funcionalidad se puede lograr utilizando el método sobrecargado GetMailboxInfo() y proporcionando la dirección de correo electrónico del usuario como un parámetro.

El siguiente fragmento de código te muestra cómo leer correos electrónicos usando la clase IEWSClient.

Listando Mensajes

Una lista de los mensajes de correo electrónico en un buzón de Exchange se puede obtener llamando al método ListMessages. Obtén la información básica sobre los mensajes, como asunto, de, a y ID del mensaje, usando el método ListMessages.

Listado Simple de Mensajes

Para listar los mensajes en un buzón de Exchange:

  1. Crea una instancia de la clase IEWSClient.
  2. Llama al método ListMessages para obtener la colección de mensajes.
  3. Recorre la colección y muestra la información del mensaje.

El siguiente fragmento de código te muestra cómo conectarte a un servidor exchange usando EWS y listar mensajes de la carpeta de entrada.

Listando Mensajes desde Diferentes Carpetas

El fragmento de código anterior lista todos los mensajes en la carpeta de entrada. También es posible obtener la lista de mensajes de otras carpetas. El método ListMessages acepta una URI de carpeta como parámetro. Siempre que la URI de la carpeta sea válida, puedes obtener la lista de mensajes de esa carpeta. Usa el IEWSClient->get_MailboxInfo->xxxFolderUri propiedad para obtener la URI de diferentes carpetas. El resto del código es el mismo que para obtener una lista de mensajes. El siguiente fragmento de código te muestra cómo listar mensajes desde diferentes carpetas usando EWS.

Listando Mensajes con Soporte de Paginación

El siguiente fragmento de código te muestra cómo obtener una lista de mensajes con soporte de paginación.

Obteniendo Información del Tipo de Mensaje desde ExchangeMessageInfo

Guardando Mensajes

Este artículo muestra cómo obtener mensajes de un buzón de servidor Exchange y guardarlos en disco en formatos EML y MSG:

  • Guardar como EML en disco.
  • Guardar en un flujo de memoria.
  • Guardar como MSG.

Guardando Mensajes en EML

Para obtener mensajes y guardar en formato EML:

  1. Crea una instancia de la clase IEWSClient.
  2. Proporciona el mailboxUri, nombre de usuario, contraseña y dominio.
  3. Llama al método IEWSClient->ListMessages() para obtener una instancia de la colección ExchangeMessagesInfoCollection.
  4. Recorre la colección ExchangeMessagesInfoCollection para obtener la URI única de cada mensaje.
  5. Llama al método IEWSClient->SaveMessage() y pasa la URI única y la ubicación de guardado como parámetros.

El siguiente fragmento de código te muestra cómo usar EWS para conectarte al servidor Exchange y guardar mensajes como archivos EML.

Guardando Mensajes en un Flujo de Memoria

En lugar de guardar archivos EML en disco, es posible guardarlos en un flujo de memoria. Esto es útil cuando deseas guardar el flujo en algún lugar de almacenamiento como una base de datos. Una vez que el flujo ha sido guardado en una base de datos, puedes recargar el archivo EML en la clase MailMessage. El siguiente fragmento de código te muestra cómo guardar mensajes de un buzón de servidor Exchange en un flujo de memoria usando EWS.

Guardando Mensajes en Formato MSG

El método IEWSClient->SaveMessage() puede guardar directamente el mensaje en formato EML. Para guardar los mensajes en formato MSG, primero, llama al método IEWSClient->FetchMessage() que retorna una instancia de la clase MailMessage. Luego, llama al método MailMessage->Save() para guardar el mensaje en MSG. El siguiente fragmento de código te muestra cómo obtener mensajes de un buzón de servidor Exchange y guardarlos en formato MSG usando EWS.

Obteniendo ExchangeMessageInfo desde la URI del Mensaje

Un mensaje de correo electrónico se representa por su identificador único, URI, y es una parte integral del objeto ExchangeMessageInfo. En caso de que solo se disponga de la URI del mensaje, entonces el objeto ExchangeMessageInfo también se puede recuperar usando esta información disponible. La versión sobrecargada de ListMessages toma una lista de Ids y retorna una colección de ExchangeMessageInfoCollection. El siguiente fragmento de código te muestra cómo obtener ExchangeMessageInfo desde la URI del mensaje.

Obteniendo Mensajes de un Buzón de Servidor Exchange

El método ListMessages() se usa para obtener una lista de mensajes de un buzón del servidor Exchange. El método ListMessages() obtiene información básica sobre los mensajes, por ejemplo, el asunto, el ID del mensaje, de y a. Para obtener los detalles completos del mensaje, Aspose.Email proporciona el método IEWSClient->FetchMessage(). Este método acepta la URI del mensaje como parámetro y retorna una instancia de la clase MailMessage. La clase MailMessage proporciona detalles del mensaje como el cuerpo, encabezados y adjuntos. Para obtener mensajes del Buzón del Servidor Exchange:

  1. Crea una instancia del tipo IEWSClient.
  2. Especifica el nombre del servidor, nombre de usuario, contraseña y dominio.
  3. Llama al método IEWSClient->ListMessages() para obtener la ExchangeMessagesInfoCollection.
  4. Recorre la colección ExchangeMessagesInfoCollection para obtener los valores de ExchangeMessageInfo->get_UniqueUri().
  5. Llama a IEWSClient->FetchMessage() y pasa ExchangeMessageInfo->get_UniqueUri() como parámetro.

El siguiente fragmento de código demuestra la obtención de todos los mensajes usando EWS.

Tamaño del Mensaje Preobtenido

Microsoft Outlook InterOp proporciona la función de recuperar el tamaño del mensaje antes de realmente obtener el mensaje completo del servidor. En el caso de la API de Aspose.Email, la información resumida recuperada del servidor Exchange está representada por la clase ExchangeMessageInfo. Proporciona la función de recuperar el tamaño del mensaje usando la propiedad Size. Con el fin de recuperar el tamaño del mensaje, se utiliza la llamada estándar a IEWSClient->ListMessages() para recuperar la ExchangeMessagesInfoCollection. El siguiente fragmento de código te muestra cómo mostrar el tamaño del mensaje usando la ExchangeMessageInfo clase.

Descargar Mensajes de Carpetas Públicas

Microsoft Exchange Server permite a los usuarios crear carpetas públicas y publicar mensajes en ellas. Para hacer esto a través de tu aplicación, usa la clase EWSClient de Aspose.Email para conectarte al servidor Exchange y leer y descargar mensajes y publicaciones de carpetas públicas. El siguiente fragmento de código te muestra cómo leer todas las carpetas públicas y subcarpetas, y listar y descargar cualquier mensaje encontrado en estas carpetas. Este ejemplo solo funciona con Microsoft Exchange Server 2007 o superior, ya que solo estos son compatibles con EWS.

Moviendo Mensajes

Puedes mover mensajes de correo electrónico de una carpeta a otra con la ayuda del método Move de la clase IEWSClient. Toma los siguientes parámetros:

  • La URI única del mensaje que se va a mover.
  • La URI única de la carpeta de destino.

Moviendo Mensajes entre Carpetas

El siguiente fragmento de código te muestra cómo mover un mensaje en un buzón de la carpeta de entrada a una carpeta llamada Procesados. En este ejemplo, la aplicación:

  1. Lee los mensajes de la carpeta de entrada.
  2. Procesa algunos de los mensajes según algunos criterios (en este ejemplo, encontramos una palabra clave en el asunto del mensaje).
  3. Mueve los mensajes que cumplen con la condición dada a la carpeta procesada.

Eliminando Mensajes

Puedes eliminar mensajes de correo electrónico de una carpeta con la ayuda del método IEWSClient->DeleteMessage. Toma la URI única del mensaje como parámetro.

El siguiente fragmento de código te muestra cómo eliminar un mensaje de la carpeta de entrada. Para el propósito de este ejemplo, el código:

  1. Lee los mensajes de la carpeta de entrada.
  2. Procesa los mensajes según algunos criterios (en este ejemplo, encontramos una palabra clave en el asunto del mensaje).
  3. Elimina el mensaje.

Copiando Mensajes

La API de Aspose.Email permite copiar un mensaje de una carpeta a otra utilizando el método IEWSClient->CopyItem. La versión sobrecargada de este método devuelve la URI única del mensaje copiado como se muestra en este artículo.

Copiando un Mensaje a Otra Carpeta

El siguiente fragmento de código te muestra cómo copiar un mensaje a otra carpeta.