Gestire gli elementi di conversazione su Exchange Server

Aspose.Email per .NET può essere usato per gestire gli elementi di conversazione su Exchange Server con il EWSClient classe. Questa classe utilizza Exchange Web Services, disponibili solo su Exchange Server 2007 e versioni successive. Questo articolo mostra come trova, copia, sposta e elimina elementi di conversazione su Exchange Server 2010. Microsoft Exchange Server 2010 Service Pack 1 è necessario per tutte le funzionalità incluse in questa sezione.

Trova conversazioni

Per ottenere le informazioni della conversazione da una cartella specifica su Exchange Server:

  1. Connettiti a Exchange Server usando il IEWSClient interfaccia.
  2. Chiama il IEWSClient.FindConversations() metodo per trovare tutti gli elementi di conversazione da una cartella.
  3. Visualizza le proprietà dell’elemento di conversazione come ID, argomento della conversazione e stato del flag.

Il seguente frammento di codice mostra come trovare le conversazioni.

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();
}

Copia conversazioni

Per copiare le conversazioni da una cartella a un’altra:

  1. Connettiti a Exchange Server usando il IEWSClient interfaccia.
  2. Chiama il IEWSClient.CopyConversationItems() metodo per copiare l’elemento di conversazione dalla cartella di origine a quella di destinazione.

Il seguente frammento di codice mostra come copiare le conversazioni.

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");
    }
}

Sposta conversazioni

Per spostare le conversazioni da una cartella a un’altra:

  1. Connettiti a Exchange Server usando il IEWSClient interfaccia.
  2. Chiama il IEWSClient.MoveConversationItems() metodo per spostare una conversazione dalla cartella di origine a quella di destinazione.

Il seguente frammento di codice mostra come spostare le conversazioni.

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");
    }
}

Elimina conversazioni

Per eliminare le conversazioni da una cartella:

  1. Connettiti a Exchange Server usando il IEWSClient interfaccia.
  2. Chiama il IEWSClient.DeleteConversationItems() metodo per eliminare l’elemento di conversazione dalla cartella di origine.

Il seguente frammento di codice mostra come eliminare le conversazioni.

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");
    }
}