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
- Encontre conversas no MS Exchange Server em C#
- Copie uma conversa no MS Exchange Server em C#
- Mover uma conversa no MS Exchange Server em C#
- Excluir uma conversa no MS Exchange Server em C#
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#.
- Primeiro, crie e inicialize o objeto NetworkCredential com nome de usuário, senha e domínio.
- Em seguida, inicialize IEWSClient com o URI da caixa de correio e o objeto NetworkCredential.
- Chame o método IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri) e obtenha conversas em uma matriz ExchangeConversation.
- Finalmente, percorra cada objeto ExchangeConversation na matriz e recupere seus detalhes.
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.
- Primeiro, crie e inicialize o objeto NetworkCredential com nome de usuário, senha e domínio.
- Em seguida, inicialize IEWSClient com o URI da caixa de correio e o objeto NetworkCredential.
- Chame o método IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri) e obtenha conversas em uma matriz ExchangeConversation.
- Faça um loop em cada ExchangeConversation na matriz e filtre o(s) necessário(s).
- Finalmente, copie a conversa usando o método IEWSClient.CopyConversationItems(ExchangeConversation.ConversationId, client.MailboxInfo.DeletedItemsUri).
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.
- Primeiro, crie e inicialize o objeto NetworkCredential com nome de usuário, senha e domínio.
- Em seguida, inicialize IEWSClient com o URI da caixa de correio e o objeto NetworkCredential.
- Chame o método IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri) e obtenha conversas em uma matriz ExchangeConversation.
- Faça um loop em cada ExchangeConversation na matriz e filtre o(s) necessário(s).
- Finalmente, mova a conversa usando o método IEWSClient.MoveConversationItems(ExchangeConversation.ConversationId, client.MailboxInfo.DeletedItemsUri).
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#.
- Primeiro, crie e inicialize o objeto NetworkCredential com nome de usuário, senha e domínio.
- Em seguida, inicialize IEWSClient com o URI da caixa de correio e o objeto NetworkCredential.
- Depois disso, chame o método IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri) e obtenha as conversas em uma matriz ExchangeConversation.
- Faça um loop em cada ExchangeConversation na matriz e filtre o(s) necessário(s).
- Por fim, exclua uma conversa usando o método IEWSClient.DeleteConversationItems(ExchangeConversation.ConversationId).
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.