Trabajando con buzón y mensajes de Exchange usando WebDav

Obteniendo información del buzón usando WebDav

El ExchangeClient la clase tiene miembros que pueden usarse para obtener información del buzón de un servidor Exchange llamando al ExchangeClient.GetMailboxInfo() método. Devuelve una instancia del tipo ExchangeMailboxInfo. Obtener información del buzón a partir de propiedades como MailboxUri, InboxUri, y DraftsUri. Este artículo muestra cómo acceder a la información del buzón directamente desde un servidor Exchange.

Para obtener la información del buzón Exchange:

  1. Cree una instancia de la ExchangeClient clase.
  2. Especifique el servidor Exchange, nombre de usuario, contraseña y dominio en el ExchangeClient constructor.
  3. Llame al ExchangeClient.GetMailboxSize() método para obtener el tamaño del buzón.
  4. Llame al ExchangeClient.GetMailboxInfo() método para obtener una instancia del ExchangeMailboxInfo clase.
  5. Obtenga la información del buzón usando el ExchangeMailboxInfo diferentes propiedades de la clase.

El siguiente fragmento de código muestra cómo obtener información del buzón de Exchange.

Enviando mensajes de correo

Puede enviar mensajes de correo electrónico usando un servidor Exchange con la ayuda de las herramientas en Aspose.Email.Exchange. El ExchangeClient.Send() método acepta un MailMessage instancia como parámetro y envía el correo. Este artículo explica cómo enviar mensajes de correo electrónico usando un servidor Exchange.

Enviando mensajes de correo electrónico usando Exchange Server

Para enviar correos electrónicos usando un servidor Exchange:

  1. Cree una instancia de la ExchangeClient clase.
  2. Especifique el nombre del servidor, el nombre de usuario, la contraseña y el dominio.
  3. Cree una instancia de la MailMessage clase.
  4. Especifique el remitente, el destinatario, el asunto y otros MailMessage propiedades.
  5. Llame al ExchangeClient.Send() método para enviar el correo electrónico.

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

Leyendo correos electrónicos del buzón de otro usuario

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

El siguiente fragmento de código muestra cómo usar el ExchangeClient clase para acceder a otro buzón.

Listando mensajes

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

Listado simple de mensajes

Para listar los mensajes en un buzón Exchange:

  1. Cree una instancia de la ExchangeClient clase.
  2. Llame al ListMessages método y crear una colección de mensajes.
  3. Recorrer la colección y mostrar la información del mensaje.

El siguiente fragmento de código muestra cómo conectarse al buzón de Exchange y obtener una lista de mensajes de la carpeta de bandeja de entrada.

Listando mensajes de diferentes carpetas

Los fragmentos de código anteriores listan todos los mensajes en la carpeta Bandeja de entrada. También es posible obtener la lista de mensajes de otras carpetas. El ExchangeClient.ListMessages() el método acepta un URI de carpeta como parámetro. Siempre que el URI de la carpeta sea válido, puede obtener la lista de mensajes de esa carpeta. Use la propiedad ExchangeClient.MailboxInfo.xxxFolderUri para obtener el 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 muestra cómo listar mensajes de diferentes carpetas usando ExchangeClient.

Listado de mensajes por ID

El fragmento de código anterior usó el ListMessages método para listar todos los mensajes en una carpeta de buzón especificada del servidor Exchange. Si conoce de antemano el ID del mensaje, puede obtener el mensaje usando el ListMessagesbyId() método. Para obtener el mensaje, pase el URI de la carpeta y el ID del mensaje. Este escenario es útil cuando ya conoce el ID del mensaje, por ejemplo, cuando los IDs de los mensajes están guardados en la base de datos. El siguiente fragmento de código muestra cómo listar mensajes por ID.

Guardando mensajes

Este tema muestra cómo obtener mensajes de un buzón de Exchange Server y guardarlos en disco en formatos EML y MSG:

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

Guardando mensajes en EML

Para obtener mensajes y guardarlos en formato EML:

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

El siguiente fragmento de código muestra cómo guardar mensajes en 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 alguna ubicación de almacenamiento como una base de datos. Una vez que el flujo se ha guardado en una base de datos, puedes recargar el archivo EML en el MailMessage clase. El siguiente fragmento de código muestra cómo guardar mensajes de un buzón Exchange Server a un flujo de memoria.

Guardando mensajes en formato MSG

El ExchangeClient.SaveMessage() el método puede guardar directamente el mensaje en formato EML. Para guardar los mensajes en formato MSG, primero, llame al ExchangeClient.fetchMessage() método que devuelve una instancia de MailMessage clase. Luego llame al MailMessage.Save() método para guardar el mensaje en MSG. El siguiente fragmento de código muestra cómo obtener mensajes de un buzón Exchange Server y guardarlos en formato MSG.

Obtener mensajes de un buzón de Exchange Server

Listar mensajes en un servidor Exchange usó el ListMessages método para obtener una lista de mensajes de un buzón de Exchange Server. El ListMessages método obtiene información básica sobre los mensajes, por ejemplo, el asunto, el ID del mensaje, de y para. Para obtener los detalles completos del mensaje, Aspose.Email.Exchange proporciona el ExchangeClient.FetchMessage() método. Este método acepta el URI del mensaje como parámetro y devuelve una instancia del MailMessage clase. El MailMessage clase que luego proporciona detalles del mensaje como cuerpo, encabezados y archivos adjuntos. Para obtener mensajes del buzón de Exchange Server:

  1. Cree una instancia del tipo ExchangeClient.
  2. Especifique el mailboxUri, nombre de usuario, contraseña y dominio.
  3. Llame a ListMessages para obtener el ExchangeMessagesInfoCollection.
  4. Iterar a través del ExchangeMessagesInfoCollection colección para obtener ExchangeMessageInfo.UniqueURI valores.
  5. Llame a ExchangeClient.FetchMessage() y pase  ExchangeMessageInfo.UniqueURI como parámetro.

El siguiente fragmento de código muestra cómo conectarse al buzón de Exchange Server y obtener todos los mensajes.

Obtener tamaño del mensaje antes de descargar

Microsoft Outlook InterOp ofrece la funcionalidad de obtener el tamaño del mensaje antes de recuperar completamente el mensaje del servidor. En el caso de la API Aspose.Email, la información resumida recuperada del servidor Exchange está representada por ExchangeMessageInfo clase. Proporciona la misma funcionalidad de obtener el tamaño del mensaje usando la propiedad Size. Para obtener el tamaño del mensaje, la llamada estándar al ExchangeClient’s ListMessages se usa que recupera una colección de ExchangeMessageInfo. El siguiente fragmento de código muestra cómo mostrar el tamaño del mensaje usando el ExchangeMessageInfo clase.

Moviendo mensajes

Puede mover mensajes de correo electrónico de una carpeta a otra con la ayuda del ExchangeClient clase MoveItems método. Recibe los parámetros:

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

Mover mensajes entre carpetas

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

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

Eliminando mensajes

Puede eliminar correos electrónicos de una carpeta con la ayuda del ExchangeClient clase DeleteMessage método. Toma el URI único del mensaje como parámetro.

Eliminando mensajes de un servidor Exchange

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

  1. Lee mensajes de la carpeta Bandeja de entrada.
  2. Procesar mensajes basados en algunos criterios (en este ejemplo, buscamos una palabra clave en el asunto del mensaje).
  3. Eliminar el mensaje.