Trabajar con el buzón y los mensajes de Exchange mediante WebDAV

Obtención de información de buzones mediante WebDAV

The ExchangeClient la clase tiene miembros que se pueden usar para obtener información de buzones de un servidor de Exchange llamando al ExchangeClient.GetMailboxInfo() método. Devuelve una instancia de tipo ExchangeMailboxInfo. Obtenga información sobre los buzones de correo de propiedades como MailboxUri, InboxUri, y DraftsUri. En este artículo se muestra cómo acceder a la información de los buzones directamente desde un servidor Exchange.

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

  1. Crea una instancia del ExchangeClient class.
  2. Especifique el servidor Exchange, el nombre de usuario, la contraseña y el dominio en 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 class.
  5. Obtenga la información del buzón de correo mediante el ExchangeMailboxInfo diferentes propiedades de la clase.

El siguiente fragmento de código muestra cómo obtener la información de los buzones de correo de Exchange.

Envío de mensajes de correo electrónico

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

Envío de mensajes de correo electrónico mediante Exchange Server

Para enviar correos electrónicos mediante un servidor Exchange:

  1. Crea una instancia del ExchangeClient class.
  2. Especifique el nombre del servidor, el nombre de usuario, la contraseña y el dominio.
  3. Crea una instancia del MailMessage class.
  4. Especifique el origen, el destino, el asunto y otros MailMessage properties.
  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 mediante Exchange Server.

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

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

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

Publicar mensajes

Para obtener una lista de los mensajes de correo electrónico de un buzón de Exchange, llame al ExchangeClient.ListMessages método. Obtenga la información básica sobre los mensajes, como el asunto, el origen y el identificador del mensaje, mediante el ListMessages method.

Listado de mensajes simples

Para enumerar los mensajes de un buzón de Exchange:

  1. Crea una instancia del ExchangeClient class.
  2. Llame al ListMessages método y crear una colección de mensajes.
  3. Recorre la colección y muestra 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 los mensajes de la carpeta Bandeja de entrada.

Listar mensajes de diferentes carpetas

Los fragmentos de código anteriores enumeran todos los mensajes de 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. Mientras el URI de la carpeta sea válido, puede obtener la lista de mensajes de esa carpeta. Utilice la propiedad ExchangeClient.MailboxInfo.xxxFolderURI para obtener el URI de las distintas carpetas. El resto del código es el mismo que para obtener una lista de mensajes. En el siguiente fragmento de código, se muestra cómo enumerar los mensajes de diferentes carpetas mediante ExchangeClient.

Listar mensajes por ID

El fragmento de código anterior utilizó el ListMessages método para enumerar todos los mensajes de una carpeta de buzones de correo de Exchange Server especificada. Si conoce de antemano el identificador de un mensaje, puede obtener el mensaje mediante el ListMessagesbyId() método. Para recibir el mensaje, pasa el URI de la carpeta y el ID del mensaje. Este escenario es útil cuando ya conoces el ID del mensaje, por ejemplo, cuando los ID de los mensajes se guardan en la base de datos. En el siguiente fragmento de código, se muestra cómo enumerar los mensajes por ID.

Guardar mensajes

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

  • Guardar como EML en el disco.
  • Guardar en la secuencia de memoria.
  • Guardar como MSG.

Guardar mensajes en EML

Para obtener mensajes y guardarlos en formato EML:

  1. Crea una instancia del ExchangeClient class.
  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 collection.
  4. Recorre el ExchangeMessagesInfoCollection colección para obtener la URI única de cada mensaje.
  5. Llame al ExchangeClient.SaveMessage() método y pase la URI única como parámetro.
  6. Proporcione el SaveMessage() método con una ruta al lugar donde desea guardar el archivo.

El siguiente fragmento de código muestra cómo guardar mensajes en EML.

Guardar mensajes en un flujo de memoria

En lugar de guardar los archivos EML en el disco, es posible guardarlos en una secuencia de memoria. Esto es útil cuando quieres guardar la transmisión en alguna ubicación de almacenamiento, como una base de datos. Una vez guardada la transmisión en una base de datos, puede volver a cargar el archivo EML en MailMessage clase. El siguiente fragmento de código muestra cómo guardar los mensajes de un buzón de Exchange Server en un flujo de memoria.

Guardar mensajes en formato MSG

The 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 del MailMessage clase. Entonces llama 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 de Exchange Server y guardarlos en formato MSG.

Obtener mensajes de un buzón de correo de Exchange Server

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

  1. Crear una instancia de tipo ExchangeClient.
  2. Especifique la URI del buzón, el nombre de usuario, la contraseña y el dominio.
  3. Call ListMessages para obtener el ExchangeMessagesInfoCollection.
  4. Recorre el ExchangeMessagesInfoCollection colección para obtener ExchangeMessageInfo.UniqueURI values.
  5. Call ExchangeClient.FetchMessage() y pase  ExchangeMessageInfo.UniqueURI como parámetro.

El siguiente fragmento de código muestra cómo se conecta al buzón de correo de Exchange Server y obtiene todos los mensajes.

Tamaño del mensaje de captura previa

Microsoft Outlook InterOp proporciona la función de recuperar el tamaño del mensaje antes de obtener el mensaje completo 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 función de recuperar el tamaño del mensaje mediante la propiedad Size. Para recuperar el tamaño del mensaje, la llamada estándar a ExchangeClient ListMessages se utiliza para recuperar la colección de ExchangeMessageInfo. En el siguiente fragmento de código se muestra cómo mostrar el tamaño de los mensajes mediante el ExchangeMessageInfo class.

Mensajes en movimiento

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

  • El URI único del mensaje que se va a mover.
  • El URI único de la carpeta de destino.

Mover mensajes entre carpetas

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

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

Eliminar mensajes

Puede eliminar los mensajes de correo electrónico de una carpeta con la ayuda del ExchangeClient class DeleteMessage método. Toma el URI único del mensaje como parámetro.

Eliminar mensajes de un servidor Exchange

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

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