Trabajando con el Buzón de Exchange y Mensajes usando WebDav
Obteniendo Información del Buzón usando WebDav
La clase ExchangeClient tiene miembros que se pueden usar para obtener información del buzón de un servidor Exchange llamando al método ExchangeClient.GetMailboxInfo(). Devuelve una instancia del tipo ExchangeMailboxInfo. Obtén información del buzón 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 de Exchange:
- Crea una instancia de la clase ExchangeClient.
- Especifica el servidor Exchange, el nombre de usuario, la contraseña y el dominio en el constructor de ExchangeClient.
- Llama al método ExchangeClient.GetMailboxSize() para obtener el tamaño del buzón.
- Llama al método ExchangeClient.GetMailboxInfo() para obtener una instancia de la clase ExchangeMailboxInfo.
- Obtén la información del buzón utilizando las diferentes propiedades de la clase ExchangeMailboxInfo.
El siguiente fragmento de código muestra cómo obtener información del buzón de Exchange.
Enviando Mensajes de Correo Electrónico
Puedes enviar mensajes de correo electrónico usando un servidor Exchange con la ayuda de las herramientas en Aspose.Email.Exchange. El método ExchangeClient.Send() acepta una instancia de MailMessage como parámetro y envía el correo electrónico. Este artículo explica cómo enviar mensajes de correo electrónico utilizando un servidor Exchange.
Enviando Mensajes de Correo Electrónico Usando el Servidor Exchange
Para enviar correos electrónicos usando un servidor Exchange:
- Crea una instancia de la clase ExchangeClient.
- Especifica el nombre del servidor, el nombre de usuario, la contraseña y el dominio.
- Crea una instancia de la clase MailMessage.
- Especifica las propiedades de de, para, asunto y otras MailMessage.
- Llama al método ExchangeClient.Send() para enviar el correo electrónico.
El siguiente fragmento de código muestra cómo enviar mensajes de correo electrónico usando el servidor Exchange.
Leyendo Correos Electrónicos del Buzón de Otro Usuario
Algunas cuentas en servidores Exchange tienen derecho a 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 utilizando Aspose.Email para .NET. Esta API proporciona un mecanismo para acceder a carpetas y correos electrónicos de otros buzones usando la clase ExchangeClient. Esta funcionalidad se puede lograr utilizando el método sobrecargado GetMailboxInfo() y proporcionando la dirección de correo electrónico del usuario como parámetro.
El siguiente fragmento de código muestra cómo usar la clase ExchangeClient para acceder a otro buzón.
Listando Mensajes
Se puede obtener una lista de los mensajes de correo electrónico en un buzón de Exchange llamando al método ExchangeClient.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:
- Crea una instancia de la clase ExchangeClient.
- Llama al método ListMessages y crea una colección de mensajes.
- Itera a través de 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 mensajes de la carpeta de entrada.
Listando Mensajes de Diferentes Carpetas
Los fragmentos de código anteriores listan todos los mensajes en la carpeta de Entrada. También es posible obtener la lista de mensajes de otras carpetas. El método ExchangeClient.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 la propiedad ExchangeClient.MailboxInfo.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 listar mensajes de diferentes carpetas usando ExchangeClient.
Listando Mensajes por ID
El fragmento de código anterior usó el método ListMessages para listar todos los mensajes en una carpeta de buzón del servidor Exchange especificado. Si conoces de antemano el ID del mensaje, puedes obtener el mensaje usando el método ListMessagesbyId() . Para obtener el mensaje, pasa la 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 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 servidor Exchange y guardarlos en el 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 guardarlos en formato EML:
- Crea una instancia de la clase ExchangeClient.
- Proporciona el nombre del servidor, el nombre de usuario, la contraseña y el dominio.
- Llama al método ExchangeClient.ListMessages() para obtener una instancia de la colección ExchangeMessagesInfoCollection.
- Itera a través de la colección ExchangeMessagesInfoCollection para obtener la URI única de cada mensaje.
- Llama al método ExchangeClient.SaveMessage() y pasa la URI única como parámetro.
- Proporciona al método SaveMessage() una ruta donde deseas 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 algún lugar 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 la clase MailMessage. El siguiente fragmento de código muestra cómo guardar mensajes desde un buzón de servidor Exchange en un flujo de memoria.
Guardando 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 llama al método ExchangeClient.fetchMessage() que devuelve 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 muestra cómo obtener mensajes de un buzón de servidor Exchange y guardarlos en formato MSG.
Obteniendo Mensajes de un Buzón de Servidor Exchange
Listar mensajes en un servidor Exchange utilizó el método ListMessages para obtener una lista de mensajes de un buzón de 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.Exchange proporciona el método ExchangeClient.FetchMessage(). Este método acepta la URI del mensaje como parámetro y devuelve una instancia de la clase MailMessage. La clase MailMessage proporciona detalles del mensaje como cuerpo, encabezados y archivos adjuntos. Para obtener mensajes del Buzón de Exchange:
- Crea una instancia del tipo ExchangeClient.
- Especifica mailboxUri, nombre de usuario, contraseña y dominio.
- Llama a ListMessages para obtener el ExchangeMessagesInfoCollection.
- Itera a través de la colección ExchangeMessagesInfoCollection para obtener los valores ExchangeMessageInfo.UniqueURI.
- Llama a ExchangeClient.FetchMessage() y pasa ExchangeMessageInfo.UniqueURI como parámetro.
El siguiente fragmento de código muestra cómo conectarse al buzón del servidor Exchange y obtener todos los mensajes.
Pre-Fetch Tamaño del Mensaje
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 Aspose.Email, la información resumen recuperada del servidor Exchange está representada por la clase ExchangeMessageInfo. Proporciona la misma función de recuperar el tamaño del mensaje usando la propiedad Size. Para recuperar el tamaño del mensaje, se utiliza la llamada estándar al método ListMessages del ExchangeClient que recupera la colección de ExchangeMessageInfo. El siguiente fragmento de código muestra cómo mostrar el tamaño del mensaje utilizando la clase ExchangeMessageInfo.
Moviendo Mensajes
Puedes mover mensajes de correo electrónico de una carpeta a otra con la ayuda de la clase ExchangeClient y el método MoveItems. Toma los 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 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:
- Lee los mensajes de la carpeta de Entrada.
- Procesa algunos de los mensajes según ciertos criterios (en este ejemplo, buscamos una palabra clave en el asunto del mensaje).
- Mueve los mensajes que cumplen 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 DeleteMessage de la clase ExchangeClient. Toma la URI única 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 de Entrada. Para el propósito de este ejemplo, el código:
- Lee mensajes de la carpeta de Entrada.
- Procesa los mensajes según ciertos criterios (en este ejemplo, buscamos una palabra clave en el asunto del mensaje).
- Elimina el mensaje.