Guardar mensajes de la bandeja de entrada del servidor Exchange usando WebDav

Este artículo muestra cómo obtener mensajes de la bandeja de entrada de un servidor Exchange y guardarlos en disco en formatos EML y MSG.

Guardar mensajes de una bandeja de entrada de Exchange en EML

Para obtener mensajes y guardarlos en formato EML:

  1. Cree una instancia de la clase ExchangeClient.
  2. Proporcione el nombre del servidor, el nombre de usuario, la contraseña y el dominio.
  3. Llame al método ExchangeClient.listMessages() para obtener una instancia de la colección ExchangeMessagesInfoCollection.
  4. Recorra la colección ExchangeMessagesInfoCollection para obtener la URI única de cada mensaje.
  5. Llame al método ExchangeClient.saveMessage() y pase la URI única como parámetro.
  6. Proporcione un método saveMessage() con una ruta a donde desea guardar el archivo.  

Guardar mensajes en un OutputStream

En lugar de guardar archivos EML en el disco, es posible guardarlos en un OutputStream. Esto es útil cuando desea guardar el flujo en alguna ubicación de almacenamiento como una base de datos. Una vez que el flujo se ha guardado en una base de datos, puede recargar el archivo EML en la clase MailMessage.

Los fragmentos de código a continuación guardan mensajes de una bandeja de entrada de Exchange en un flujo de memoria.

Guardar mensajes en formato MSG

El método ExchangeClient.saveMessage() puede guardar directamente el mensaje en formato EML. Para guardar los mensajes en formato MSG, primero, llame al método ExchangeClient.fetchMessage() que devuelve una instancia de la clase MailMessage. Luego, llame al método MailMessage.save() para guardar el mensaje en MSG.

El fragmento de código a continuación obtiene mensajes de una bandeja de entrada de Exchange y los guarda en formato MSG.