Leer correos electrónicos de MS Exchange Server usando C#

Microsoft Exchange Server es una plataforma que le permite administrar contactos, correos electrónicos, calendarios, programaciones y proporciona varias funciones de colaboración. Con MS Exchange Server, puede implementar su propio servidor de correo sin depender de terceros. También se puede acceder a MS Exchange Server desde sus aplicaciones web, de escritorio o móviles a través de servicios web. Por lo tanto, puede realizar las operaciones de correo y calandrado en sus aplicaciones. En este artículo, aprenderá cómo conectarse a un servidor Exchange y leer correos electrónicos usando C#.

API de C# Exchange Server - Descarga gratuita

Aspose.Email for .NET proporciona una API fácil de usar para trabajar con MS Exchange Server. Le permite conectarse a su servidor de correo mediante el Servicio web de Exchange (EWS) o el Protocolo de acceso a mensajes de Internet (IMAP). Una vez que esté conectado, puede acceder a los elementos de un buzón en unos pocos pasos. Puede instalar Aspose.Email for .NET a través de NuGet o descargar su DLL.

PM> Install-Package Aspose.Email

Conéctese a un servidor de Exchange usando C#

Aspose.Email for .NET proporciona dos formas de conectarse a una instancia de Exchange Server: EWS e IMAP. Las siguientes secciones proporcionan los pasos para establecer una conexión utilizando cualquiera de las dos formas.

Conéctese a un servidor de Exchange a través de EWS

Los siguientes son pasos para conectarse a un MS Exchange Server usando Aspose.Email for .NET.

El siguiente ejemplo de código muestra cómo conectarse a Exchange Server a través de EWS usando C#.

// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-email/Aspose.Email-for-.NET
private static IEWSClient GetExchangeEWSClient()
{
    const string mailboxUri = "https://outlook.office365.com/ews/exchange.asmx";
    const string domain = @"";
    const string username = @"username@ASE305.onmicrosoft.com";
    const string password = @"password";
    NetworkCredential credentials = new NetworkCredential(username, password, domain);
    IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
    return client;
}

Conéctese a un servidor de Exchange a través de IMAP

Para conectarse a un servidor Exchange a través de IMAP, asegúrese de que los servicios IMAP estén habilitados en su servidor. Una vez hecho esto, siga los pasos a continuación para conectarse a Exchange Server.

  • Cree una instancia de la clase ImapClient y proporcione host, nombre de usuario y contraseña a su constructor.
  • Configure las opciones de seguridad usando la propiedad ImapClient.SecurityOptions.
  • Acceda a los elementos del buzón mediante el objeto ImapClient.

El siguiente ejemplo de código muestra cómo acceder a Exchange Server a través de IMAP usando C#.

// Conéctese a Exchange Server usando la clase ImapClient
ImapClient imapClient = new ImapClient("ex07sp1", "Administrator", "Evaluation1");
imapClient.SecurityOptions = SecurityOptions.Auto;

Leer correos electrónicos de Exchange Server usando EWS en C#

Los siguientes son los pasos para leer mensajes de correo electrónico de Exchange Server usando EWS.

  • Cree una instancia de IEWSClient.
  • Use el método IEWSClient.ListMessage(String) para acceder a la colección de correo electrónico.
  • Recorra la colección de correos electrónicos para obtener detalles de cada mensaje de correo electrónico.

El siguiente ejemplo de código muestra cómo leer correos electrónicos de Exchange Server en C#.

// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-email/Aspose.Email-for-.NET
// Cree una instancia de la clase ExchangeWebServiceClient proporcionando credenciales
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "UserName", "Password");

// Llame al método ListMessages para enumerar la información de los mensajes de la Bandeja de entrada
ExchangeMessageInfoCollection msgCollection = client.ListMessages(client.MailboxInfo.InboxUri);

// Recorra la colección para mostrar la información básica
foreach (ExchangeMessageInfo msgInfo in msgCollection)
{
    Console.WriteLine("Subject: " + msgInfo.Subject);
    Console.WriteLine("From: " + msgInfo.From.ToString());
    Console.WriteLine("To: " + msgInfo.To.ToString());
    Console.WriteLine("Message ID: " + msgInfo.MessageId);
    Console.WriteLine("Unique URI: " + msgInfo.UniqueUri);
}

Leer correos electrónicos de Exchange Server usando IMAP

Los siguientes son los pasos para leer correos electrónicos de Exchange Server usando IMAP.

  • Cree una instancia de la clase ImapClient y proporcione host, nombre de usuario y contraseña a su constructor.
  • Configure las opciones de seguridad usando la propiedad ImapClient.SecurityOptions.
  • Seleccione una carpeta como bandeja de entrada, enviados, etc. usando el método ImapClient.SelectFolder().
  • Utilice el método ImapClient.ListMessages() para obtener la recopilación de correo electrónico.
  • Recorra la colección de correos electrónicos para acceder a cada mensaje.

El siguiente ejemplo de código muestra cómo leer correos electrónicos de Exchange Server mediante IMAP.

// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-email/Aspose.Email-for-.NET
// Conéctese a Exchange Server usando la clase ImapClient
ImapClient imapClient = new ImapClient("ex07sp1", "Administrator", "Evaluation1");
imapClient.SecurityOptions = SecurityOptions.Auto;

// Seleccione la carpeta Bandeja de entrada
imapClient.SelectFolder(ImapFolderInfo.InBox);

// Obtener la lista de mensajes
ImapMessageInfoCollection msgCollection = imapClient.ListMessages();
foreach (ImapMessageInfo msgInfo in msgCollection)
{
    Console.WriteLine(msgInfo.Subject);
}
// Desconectarse del servidor
imapClient.Dispose();

Obtenga una licencia de API gratuita

Puedes probar la API sin limitaciones de evaluación de forma gratuita. Obtenga una licencia temporal gratuita ahora.

Demo en vivo

Conclusión

En este artículo, ha aprendido cómo conectarse a MS Exchange Server y leer mensajes de correo electrónico usando C#. Además, los ejemplos de código muestran cómo acceder a Exchange Server mediante clientes EWS e IMAP. Puede explorar más sobre la API de correo electrónico de C# usando documentación.

Ver también