Mover correo electrónico a una carpeta en Microsoft Exchange Server usando C#

Microsoft Exchange Server es una plataforma de colaboración ampliamente utilizada que proporciona correo electrónico, administración de contactos, calendario y otros servicios. En la publicación anterior, le mostramos cómo acceder y leer correos electrónicos de MS Exchange Server mediante programación en una aplicación .NET. Sin embargo, es posible que también deba copiar correos electrónicos de una carpeta a otra en Exchange Server. Para lograrlo, este artículo muestra cómo mover correos electrónicos a una carpeta particular en MS Exchange Server en C# .NET.

C# .NET API para mover correos electrónicos en Microsoft Exchange Server

Para mover los correos electrónicos en MS Exchange Server, usaremos Aspose.Email for .NET. La API proporciona formas sencillas de conectarse y trabajar con MS Exchange Server. Puede instalarlo a través de NuGet o descargar su DLL.

PM> Install-Package Aspose.Email

Mover correo electrónico a una carpeta en MS Exchange Server en C#

Los siguientes son los pasos para mover correos electrónicos a una carpeta particular en MS Exchange Server en C#.

El siguiente ejemplo de código muestra cómo mover un correo electrónico a una carpeta en MS Exchange Server en C# .NET.

try
{
    // Cree una instancia de la clase EWSClient proporcionando credenciales
    IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");

    // 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 obtener el URI del mensaje
    foreach (ExchangeMessageInfo msgInfo in msgCollection)
    {
        if (msgInfo.From.Address.Contains("jhon.vick"))
        {
            String strMessageURI = msgInfo.UniqueUri;

            // Copiar a una carpeta en particular
            string newMessageUri = client.CopyItem(strMessageURI, client.MailboxInfo.DeletedItemsUri);
        }
    }                
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}

Mover nuevo correo electrónico a una carpeta en MS Exchange Server

También puede mover un correo electrónico recién creado a una carpeta particular en MS Exchange Server. Los siguientes son los pasos para realizar esta operación.

El siguiente ejemplo de código muestra cómo mover un nuevo mensaje de correo electrónico a una carpeta en MS Exchange Server.

try
{
    // Cree una instancia de la clase EWSClient proporcionando credenciales
    IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");

    // Crear mensaje
    MailMessage message = new MailMessage("from@domain.com", "to@domain.com", "EMAILNET-34997 - " + Guid.NewGuid().ToString(), "EMAILNET-34997 Exchange: Copy a message and get reference to the new Copy item");

    // Obtener mensaje URI
    string messageUri = client.AppendMessage(message);

    // Copiar mensaje
    string newMessageUri = client.CopyItem(messageUri, client.MailboxInfo.OutboxUri);
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}

Obtenga una licencia de API gratuita

Puede obtener una licencia temporal gratuita para usar Aspose.Email for .NET sin limitaciones de evaluación.

Conclusión

En este artículo, aprendió cómo mover correos electrónicos a una carpeta particular en Microsoft Exchange Server usando C#. Además, ha visto cómo mover un mensaje de correo electrónico recién creado a una carpeta específica en Exchange Server. Además, puede explorar la documentación para leer más sobre Aspose.Email for .NET. Además, puede hacer sus preguntas a través de nuestro foro.

Ver también