Lavora con le conversazioni in MS Exchange Server in C#

Le conversazioni su Microsoft Exchange Server sono indicate come il gruppo di messaggi di posta elettronica in un thread. In parole semplici, un’e-mail e tutte le sue risposte sono note per essere una conversazione. In questo articolo, ti mostreremo come lavorare con le conversazioni in MS Exchange Server a livello di codice. In particolare, imparerai come trovare, copiare, spostare ed eliminare conversazioni su MS Exchange Server in C# .NET.

API C# .NET per lavorare con le conversazioni su MS Exchange Server

Per gestire le conversazioni su Microsoft Exchange Server, utilizzeremo Aspose.Email for .NET. È una potente API che fornisce una gamma di funzionalità per implementare applicazioni client di posta elettronica. Inoltre, ti consente di accedere a vari servizi di MS Exchange Server senza problemi. Puoi scaricare la DLL dell’API o installarla da NuGet usando il comando seguente.

PM> Install-Package Aspose.Email

Trova conversazioni su MS Exchange Server in C#

Di seguito sono riportati i passaggi per trovare conversazioni da una cartella in MS Exchange Server in C#.

L’esempio di codice seguente mostra come trovare conversazioni da una cartella in MS Exchange Server in 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);

// Connetti a MS Exchange Server
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Ricevi conversazioni dalla posta in arrivo
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

// Mostra tutte le conversazioni
foreach (ExchangeConversation conversation in conversations)
{
    // Visualizza le proprietà della conversazione come ID e Argomento
    Console.WriteLine("Topic: " + conversation.ConversationTopic);
    Console.WriteLine("Flag Status: " + conversation.FlagStatus.ToString());
    Console.WriteLine();
}

Copia una conversazione su MS Exchange Server in C#

Puoi anche copiare le conversazioni da una cartella all’altra senza scrivere un codice complesso. A scopo dimostrativo, diamo un’occhiata a come copiare le conversazioni dalla Posta in arrivo alla cartella degli elementi eliminati di Exchange Server in C# .NET.

Nell’esempio di codice seguente viene illustrato come copiare una conversazione in MS Exchange Server utilizzando 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);

// Connetti a MS Exchange Server
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Ottieni conversazioni
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

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

    // Copia l'elemento della conversazione in base ad alcune condizioni
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.CopyConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
        Console.WriteLine("Copied the conversation item to another folder");
    }
}

Sposta una conversazione su MS Exchange Server in C#

Nella sezione precedente, abbiamo appena copiato le conversazioni da una cartella all’altra. Tuttavia, in alcuni casi, potrebbe essere necessario spostare una conversazione in una cartella particolare. Di seguito sono riportati i passaggi per spostare le conversazioni in MS Exchange Server in C# .NET.

Nell’esempio di codice seguente viene illustrato come spostare una conversazione in MS Exchange Server utilizzando 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);

// Connetti a MS Exchange Server
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Ottieni conversazioni
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

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

    // Sposta l'elemento della conversazione in base ad alcune condizioni
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.MoveConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
        Console.WriteLine("Moved the conversation item to another folder");
    }
}

Elimina una conversazione su MS Exchange Server in C#

Ultimo ma non meno importante, diamo un’occhiata a come eliminare una conversazione da MS Exchange Server in C#.

L’esempio di codice seguente mostra come eliminare una conversazione da MS Exchange Server in 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);

// Connetti a MS Exchange Server
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Ottieni conversazioni
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

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

    // Elimina l'elemento della conversazione in base ad alcune condizioni
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.DeleteConversationItems(conversation.ConversationId);
        Console.WriteLine("Deleted the conversation item");
    }
}

Ottieni una licenza API gratuita

Puoi ottenere una licenza temporanea gratuita per utilizzare Aspose.Email per .NET senza limitazioni di valutazione.

Conclusione

In questo articolo hai imparato come gestire le conversazioni in Microsoft Exchange Server usando C#. Hai visto come trovare, copiare, spostare ed eliminare conversazioni su MS Exchange Server a livello di codice in C#. Inoltre, puoi esplorare la documentazione per saperne di più su Aspose.Email per .NET. Inoltre, puoi porre le tue domande tramite il nostro forum.

Guarda anche