Trabajar con el buzón y los mensajes de Exchange

Obtención de información de buzones mediante EWS

Para obtener información sobre los buzones de correo de un servidor Exchange, llame al GetMailboxInfo método del IEWSClient clase. 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 de correo mediante los servicios web de Exchange.

Para conectarse al servidor de Exchange mediante los servicios web de Exchange (EWS), utilice IEWSClient clase. Esta clase usa EWS para conectarse a los elementos de un servidor Exchange y administrarlos. El siguiente fragmento de código muestra cómo obtener información sobre los buzones de correo mediante los servicios web de Exchange.

Envío de mensajes de correo electrónico

Puede enviar mensajes de correo electrónico mediante un servidor Exchange con el IEWSClient->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 los servicios web de Exchange.

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

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. Esta API proporciona un mecanismo para acceder a las carpetas y correos electrónicos de otros buzones mediante el IEWSClient 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.

En el siguiente fragmento de código se muestra cómo leer los correos electrónicos mediante el IEWSClient class.

Publicar mensajes

Para obtener una lista de los mensajes de correo electrónico de un buzón de Exchange, llame al 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 IEWSClient class.
  2. Llame al ListMessages método 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 muestra cómo conectarse a un servidor de Exchange mediante EWS y muestra los mensajes de la carpeta de la bandeja de entrada.

Listar mensajes de diferentes carpetas

El fragmento de código anterior muestra todos los mensajes de la carpeta Bandeja de entrada. También es posible obtener la lista de mensajes de otras carpetas. El 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. Usa el IEWSClient->get_MailboxInfo->Propiedad xxxFolderURI 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 muestra cómo enumerar los mensajes de diferentes carpetas mediante EWS.

Listar mensajes con soporte de paginación

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

Obtener información sobre el tipo de mensaje de ExchangeMessageInfo

Guardar mensajes

En este artículo 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 IEWSClient class.
  2. Proporcione la URI del buzón, el nombre de usuario, la contraseña y el dominio.
  3. Llame al IEWSClient->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 IEWSClient->SaveMessage() método y pase el URI único y guarde la ubicación como parámetros.

El siguiente fragmento de código muestra cómo usar EWS para conectarse al servidor Exchange y guardar los mensajes como archivos 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 mediante EWS.

Guardar mensajes en formato MSG

The IEWSClient->SaveMessage() El método puede guardar directamente el mensaje en formato EML. Para guardar los mensajes en formato MSG, primero llame al IEWSClient->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 mediante EWS.

Obtener ExchangeMessageInfo del URI del mensaje

Un mensaje de correo electrónico se representa mediante su identificador único, el URI, y es una parte integral del objeto ExchangeMessageInfo. En caso de que solo esté disponible el URI del mensaje, ExchangeMessageInfo el objeto también se puede recuperar utilizando esta información disponible. La versión de sobrecarga de ListMessages toma una lista de identificadores y devuelve un ExchangeMessageInfoCollection colección. El siguiente fragmento de código muestra cómo obtener ExchangeMessageInfo del URI del mensaje.

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

The ListMessages() el método se usa 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 identificador del mensaje, el origen y el destino. Para obtener los detalles completos del mensaje, Aspose.Email proporciona IEWSClient->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 IEWSClient.
  2. Especifique el nombre del servidor, el nombre de usuario, la contraseña y el dominio.
  3. Call IEWSClient->ListMessages() método para obtener el ExchangeMessagesInfoCollection.
  4. Recorre el ExchangeMessagesInfoCollection colección para obtener ExchangeMessageInfo->get_UniqueUri() values.
  5. Call IEWSClient->FetchMessage() y pase ExchangeMessageInfo->get_UniqueUri() como parámetro.

El siguiente fragmento de código muestra cómo obtener todos los mensajes mediante EWS.

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 de Exchange está representada por el ExchangeMessageInfo clase. Proporciona la función de recuperar el tamaño del mensaje mediante el Size propiedad. Para recuperar el tamaño del mensaje, la llamada estándar a IEWSClient->ListMessages() se usa para recuperar el ExchangeMessagesInfoCollection. En el siguiente fragmento de código se muestra cómo mostrar el tamaño de los mensajes mediante el ExchangeMessageInfo class.

Descargar mensajes de carpetas públicas

Microsoft Exchange Server permite a los usuarios crear carpetas públicas y publicar mensajes en ellas. Para hacerlo a través de su aplicación, utilice Aspose.Email EWSClient clase para conectarse al servidor Exchange y leer y descargar mensajes y publicaciones de carpetas públicas. En el siguiente fragmento de código se muestra cómo leer todas las carpetas y subcarpetas públicas, y cómo mostrar y descargar los mensajes que se encuentran en estas carpetas. Este ejemplo solo funciona con Microsoft Exchange Server 2007 o superior, ya que solo estos son compatibles con EWS.

Mensajes en movimiento

Puede mover los mensajes de correo electrónico de una carpeta a otra con la ayuda del IEWSClient método class Move. Toma los siguientes 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 IEWSClient->DeleteMessage método. Toma el URI único del mensaje como parámetro.

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. Elimina el mensaje.

Copiar mensajes

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

Copiar un mensaje a otra carpeta

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