Gerenciando Itens de Conversa no Exchange Server

Aspose.Email for .NET pode ser usado para gerenciar os itens de conversa no Exchange Server com o EWSClient classe. Esta classe usa Exchange Web Services, que estão disponíveis apenas no Exchange Server 2007 e versões posteriores. Este artigo mostra como find, copy, move e delete itens de conversa no Exchange Server 2010. O Microsoft Exchange Server 2010 Service Pack 1 é necessário para todos os recursos incluídos nesta seção.

Encontrar Conversas

Para obter as informações da conversa de uma pasta específica no Exchange Server:

  1. Conectar ao Exchange Server usando o IEWSClient interface.
  2. Chame o IEWSClient.FindConversations() método para encontrar todos os itens de conversa de uma pasta.
  3. Exiba as propriedades do item de conversa, como ID, tópico da conversa e status da bandeira.

O trecho de código a seguir mostra como encontrar conversas.

IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange 2010"); 
            
// Find Conversation Items in the Inbox folder
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);
// Show all conversations
foreach (ExchangeConversation conversation in conversations)
{
    // Display conversation properties like Id and Topic
    Console.WriteLine("Topic: " + conversation.ConversationTopic);
    Console.WriteLine("Flag Status: " + conversation.FlagStatus.ToString());
    Console.WriteLine();
}

Copiar Conversas

Para copiar conversas de uma pasta para outra:

  1. Conectar ao Exchange Server usando o IEWSClient interface.
  2. Chame o IEWSClient.CopyConversationItems() método para copiar o item de conversa da pasta de origem para a pasta de destino.

O trecho de código a seguir mostra como copiar conversas.

IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange 2010");
            
// Find those Conversation Items in the Inbox folder which we want to copy
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);
foreach (ExchangeConversation conversation in conversations)
{
    Console.WriteLine("Topic: " + conversation.ConversationTopic);
    // Copy the conversation item based on some condition
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.CopyConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
        Console.WriteLine("Copied the conversation item to another folder");
    }
}

Mover Conversas

Para mover conversas de uma pasta para outra:

  1. Conectar ao Exchange Server usando o IEWSClient interface.
  2. Chame o IEWSClient.MoveConversationItems() método para mover uma conversa da pasta de origem para a pasta de destino.

O trecho de código a seguir mostra como mover conversas.

IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange 2010");
            
// Find those Conversation Items in the Inbox folder which we want to move
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

foreach (ExchangeConversation conversation in conversations)
{
    Console.WriteLine("Topic: " + conversation.ConversationTopic);
    // Move the conversation item based on some condition
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.MoveConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
        Console.WriteLine("Moved the conversation item to another folder");
    }
}

Excluir Conversas

Para excluir conversas de uma pasta:

  1. Conectar ao Exchange Server usando o IEWSClient interface.
  2. Chame o IEWSClient.DeleteConversationItems() método para excluir o item de conversa da pasta de origem.

O trecho de código a seguir mostra como excluir conversas.

IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange 2010");
            
// Find those Conversation Items in the Inbox folder which we want to delete
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);
foreach (ExchangeConversation conversation in conversations)
{
    Console.WriteLine("Topic: " + conversation.ConversationTopic);
    // Delete the conversation item based on some condition
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.DeleteConversationItems(conversation.ConversationId);
        Console.WriteLine("Deleted the conversation item");
    }
}