Mover e-mail para uma pasta no Microsoft Exchange Server usando C#

Microsoft Exchange Server é uma plataforma de colaboração amplamente utilizada que fornece e-mail, gerenciamento de contatos, calendário e outros serviços. No post anterior, mostramos como acessar e ler e-mails do MS Exchange Server programaticamente em um aplicativo .NET. No entanto, você também pode precisar copiar emails de uma pasta para outra no Exchange Server. Para conseguir isso, este artigo mostra como mover emails para uma pasta específica no MS Exchange Server em C# .NET.

API C# .NET para mover emails no Microsoft Exchange Server

Para mover os e-mails no MS Exchange Server, usaremos Aspose.Email for .NET. A API fornece maneiras simples de se conectar e trabalhar com o MS Exchange Server. Você pode instalá-lo via NuGet ou download sua DLL.

PM> Install-Package Aspose.Email

Mover e-mail para uma pasta no MS Exchange Server em C#

A seguir estão as etapas para mover emails para uma pasta específica no MS Exchange Server em C#.

O exemplo de código a seguir mostra como mover um email para uma pasta no MS Exchange Server em C# .NET.

try
{
    // Crie uma instância da classe EWSClient fornecendo credenciais
    IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");

    // Chame o método ListMessages para listar as informações das mensagens da caixa de entrada
    ExchangeMessageInfoCollection msgCollection = client.ListMessages(client.MailboxInfo.InboxUri);

    // Percorra a coleção para obter o URI da mensagem
    foreach (ExchangeMessageInfo msgInfo in msgCollection)
    {
        if (msgInfo.From.Address.Contains("jhon.vick"))
        {
            String strMessageURI = msgInfo.UniqueUri;

            // Copiar para uma pasta específica
            string newMessageUri = client.CopyItem(strMessageURI, client.MailboxInfo.DeletedItemsUri);
        }
    }                
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}

Mover novo e-mail para uma pasta no MS Exchange Server

Você também pode mover um e-mail recém-criado para uma pasta específica no MS Exchange Server. A seguir estão as etapas para realizar esta operação.

O exemplo de código a seguir mostra como mover uma nova mensagem de email para uma pasta no MS Exchange Server.

try
{
    // Crie uma instância da classe EWSClient fornecendo credenciais
    IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");

    // Criar mensagem
    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");

    // Obter URI da mensagem
    string messageUri = client.AppendMessage(message);

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

Obtenha uma licença de API gratuita

Você pode obter uma licença temporária gratuita para usar o Aspose.Email para .NET sem limitações de avaliação.

Conclusão

Neste artigo, você aprendeu como mover emails para uma pasta específica no Microsoft Exchange Server usando C#. Além disso, você viu como mover uma mensagem de email recém-criada para uma pasta específica no Exchange Server. Além disso, você pode explorar a documentação para ler mais sobre o Aspose.Email para .NET. Além disso, você pode fazer suas perguntas através do nosso fórum.

Veja também