Arbeiten mit Konversationen in MS Exchange Server in C#

Die Konversationen auf Microsoft Exchange Server werden als Gruppe von E-Mail-Nachrichten in einem Thread bezeichnet. Mit einfachen Worten, eine E-Mail und alle ihre Antworten sind bekanntlich ein Gespräch. In diesem Artikel zeigen wir Ihnen, wie Sie programmgesteuert mit Konversationen in MS Exchange Server arbeiten. Insbesondere lernen Sie, wie Sie Konversationen auf MS Exchange Server in C# .NET finden, kopieren, verschieben und löschen.

C# .NET-API zum Arbeiten mit Gesprächen auf MS Exchange Server

Um die Konversationen auf Microsoft Exchange Server zu verwalten, verwenden wir Aspose.Email for .NET. Es ist eine leistungsstarke API, die eine Reihe von Funktionen zur Implementierung von E-Mail-Client-Anwendungen bietet. Außerdem können Sie nahtlos auf verschiedene Dienste von MS Exchange Server zugreifen. Sie können die DLL der API entweder herunterladen oder sie mit dem folgenden Befehl von NuGet installieren.

PM> Install-Package Aspose.Email

Konversationen auf MS Exchange Server in C# finden

Im Folgenden finden Sie die Schritte zum Suchen von Konversationen aus einem Ordner in MS Exchange Server in C#.

Das folgende Codebeispiel zeigt, wie Sie Konversationen aus einem Ordner in MS Exchange Server in C# finden.

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

// Verbinden Sie sich mit MS Exchange Server
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Erhalten Sie Konversationen aus dem Posteingang
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

// Alle Konversationen anzeigen
foreach (ExchangeConversation conversation in conversations)
{
    // Konversationseigenschaften wie ID und Thema anzeigen
    Console.WriteLine("Topic: " + conversation.ConversationTopic);
    Console.WriteLine("Flag Status: " + conversation.FlagStatus.ToString());
    Console.WriteLine();
}

Kopieren Sie eine Konversation auf MS Exchange Server in C#

Sie können die Konversationen auch von einem Ordner in einen anderen kopieren, ohne einen komplexen Code zu schreiben. Schauen wir uns zur Demonstration an, wie Konversationen aus dem Posteingang in den Ordner „Gelöschte Elemente“ von Exchange Server in C# .NET kopiert werden.

Das folgende Codebeispiel zeigt, wie Sie eine Konversation in MS Exchange Server mit C# .NET kopieren.

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

// Verbinden Sie sich mit MS Exchange Server
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Gespräche führen
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

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

    // Kopieren Sie das Gesprächselement basierend auf einer bestimmten Bedingung
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.CopyConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
        Console.WriteLine("Copied the conversation item to another folder");
    }
}

Verschieben einer Konversation auf MS Exchange Server in C#

Im vorherigen Abschnitt haben wir einfach Konversationen von einem Ordner in einen anderen kopiert. In bestimmten Fällen müssen Sie eine Konversation jedoch möglicherweise in einen bestimmten Ordner verschieben. Im Folgenden sind die Schritte zum Verschieben von Konversationen in MS Exchange Server in C# .NET aufgeführt.

Das folgende Codebeispiel zeigt, wie Sie eine Konversation in MS Exchange Server mithilfe von C# .NET verschieben.

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

// Verbinden Sie sich mit MS Exchange Server
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Gespräche führen
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

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

    // Verschieben Sie das Gesprächselement basierend auf einer bestimmten Bedingung
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.MoveConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
        Console.WriteLine("Moved the conversation item to another folder");
    }
}

Löschen Sie eine Konversation auf MS Exchange Server in C#

Zu guter Letzt schauen wir uns an, wie man eine Konversation von MS Exchange Server in C# löscht.

Das folgende Codebeispiel zeigt, wie Sie eine Konversation von MS Exchange Server in C# .NET löschen.

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

// Verbinden Sie sich mit MS Exchange Server
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Gespräche führen
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

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

    // Löschen Sie das Gesprächselement basierend auf einer bestimmten Bedingung
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.DeleteConversationItems(conversation.ConversationId);
        Console.WriteLine("Deleted the conversation item");
    }
}

Holen Sie sich eine kostenlose API-Lizenz

Sie können eine kostenlose temporäre Lizenz erhalten, um Aspose.Email für .NET ohne Evaluierungseinschränkungen zu verwenden.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie Konversationen in Microsoft Exchange Server mit C# verwalten. Sie haben gesehen, wie Sie Konversationen auf MS Exchange Server programmgesteuert in C# finden, kopieren, verschieben und löschen. Darüber hinaus können Sie die Dokumentation durchsuchen, um mehr über Aspose.Email für .NET zu erfahren. Sie können Ihre Fragen auch über unser Forum stellen.

Siehe auch