Trabalhar com conversas no MS Exchange Server em C#

As conversas no Microsoft Exchange Server são chamadas de grupo de mensagens de email em um encadeamento. Em palavras simples, um e-mail e todas as suas respostas são conhecidas por serem uma conversa. Neste artigo, mostraremos como trabalhar programaticamente com conversas no MS Exchange Server. Particularmente, você aprenderá como localizar, copiar, mover e excluir conversas no MS Exchange Server em C# .NET.

API C# .NET para trabalhar com conversas no MS Exchange Server

Para gerenciar as conversas no Microsoft Exchange Server, usaremos Aspose.Email for .NET. É uma API poderosa que fornece uma variedade de recursos para implementar aplicativos de cliente de e-mail. Além disso, permite acessar vários serviços do MS Exchange Server sem problemas. Você pode baixar a DLL da API ou instalá-la de NuGet usando o comando a seguir.

PM> Install-Package Aspose.Email

Encontre conversas no MS Exchange Server em C#

A seguir estão as etapas para localizar conversas de uma pasta no MS Exchange Server em C#.

O exemplo de código a seguir mostra como localizar conversas de uma pasta no MS Exchange Server em C#.

string mailboxUri = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);

// Conecte-se ao MS Exchange Server
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Obter conversas da caixa de entrada
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

// Mostrar todas as conversas
foreach (ExchangeConversation conversation in conversations)
{
    // Exibir propriedades de conversa como Id e Topic
    Console.WriteLine("Topic: " + conversation.ConversationTopic);
    Console.WriteLine("Flag Status: " + conversation.FlagStatus.ToString());
    Console.WriteLine();
}

Copie uma conversa no MS Exchange Server em C#

Você também pode copiar as conversas de uma pasta para outra sem escrever um código complexo. Para demonstração, vamos dar uma olhada em como copiar conversas da caixa de entrada para a pasta de itens excluídos do Exchange Server em C# .NET.

O exemplo de código a seguir mostra como copiar uma conversa no MS Exchange Server usando C# .NET.

string mailboxUri = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);

// Conecte-se ao MS Exchange Server
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Obter conversas
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

foreach (ExchangeConversation conversation in conversations)
{
    Console.WriteLine("Topic: " + conversation.ConversationTopic);

    // Copie o item de conversa com base em alguma condição
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.CopyConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
        Console.WriteLine("Copied the conversation item to another folder");
    }
}

Mover uma conversa no MS Exchange Server em C#

Na seção anterior, apenas copiamos conversas de uma pasta para outra. No entanto, em certos casos, pode ser necessário mover uma conversa para uma pasta específica. A seguir estão as etapas para mover conversas no MS Exchange Server em C# .NET.

O exemplo de código a seguir mostra como mover uma conversa no MS Exchange Server usando C# .NET.

string mailboxUri = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);

// Conecte-se ao MS Exchange Server
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Obter conversas
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

foreach (ExchangeConversation conversation in conversations)
{
    Console.WriteLine("Topic: " + conversation.ConversationTopic);

    // Mova o item de conversa com base em alguma condição
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.MoveConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
        Console.WriteLine("Moved the conversation item to another folder");
    }
}

Excluir uma conversa no MS Exchange Server em C#

Por último, mas não menos importante, vamos dar uma olhada em como excluir uma conversa do MS Exchange Server em C#.

O exemplo de código a seguir mostra como excluir uma conversa do MS Exchange Server em C# .NET.

string mailboxUri = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);

// Conecte-se ao MS Exchange Server
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Obter conversas
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

foreach (ExchangeConversation conversation in conversations)
{
    Console.WriteLine("Topic: " + conversation.ConversationTopic);

    // Excluir o item de conversa com base em alguma condição
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.DeleteConversationItems(conversation.ConversationId);
        Console.WriteLine("Deleted the conversation item");
    }
}

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 a gerenciar conversas no Microsoft Exchange Server usando C#. Você viu como localizar, copiar, mover e excluir conversas no MS Exchange Server programaticamente em C#. 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