Arbeta med konversationer i MS Exchange Server i C#

Konversationerna på Microsoft Exchange Server hänvisas till som gruppen av e-postmeddelanden i en tråd. Med enkla ord är ett e-postmeddelande och alla dess svar kända för att vara en konversation. I den här artikeln kommer vi att visa dig hur du arbetar med konversationer i MS Exchange Server programmatiskt. I synnerhet kommer du att lära dig hur du hittar, kopierar, flyttar och tar bort konversationer på MS Exchange Server i C# .NET.

C# .NET API för att arbeta med konversationer på MS Exchange Server

För att hantera konversationerna på Microsoft Exchange Server kommer vi att använda Aspose.Email for .NET. Det är ett kraftfullt API som tillhandahåller en rad funktioner för att implementera e-postklientapplikationer. Det låter dig också komma åt olika tjänster från MS Exchange Server sömlöst. Du kan antingen ladda ner API:s DLL eller installera den från NuGet med följande kommando.

PM> Install-Package Aspose.Email

Hitta konversationer på MS Exchange Server i C#

Följande är stegen för att hitta konversationer från en mapp i MS Exchange Server i C#.

Följande kodexempel visar hur man hittar konversationer från en mapp i MS Exchange Server i 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);

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

// Få konversationer från inkorgen
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

// Visa alla konversationer
foreach (ExchangeConversation conversation in conversations)
{
    // Visa konversationsegenskaper som Id och Ämne
    Console.WriteLine("Topic: " + conversation.ConversationTopic);
    Console.WriteLine("Flag Status: " + conversation.FlagStatus.ToString());
    Console.WriteLine();
}

Kopiera en konversation på MS Exchange Server i C#

Du kan också kopiera konversationerna från en mapp till en annan utan att skriva en komplex kod. För demonstration, låt oss ta en titt på hur man kopierar konversationer från inkorgen till mappen med borttagna objekt i Exchange Server i C# .NET.

Följande kodexempel visar hur man kopierar en konversation i MS Exchange Server med 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);

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

// Få konversationer
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

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

    // Kopiera konversationsobjektet baserat på något villkor
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.CopyConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
        Console.WriteLine("Copied the conversation item to another folder");
    }
}

Flytta en konversation på MS Exchange Server i C#

I föregående avsnitt kopierade vi bara konversationer från en mapp till en annan. Men i vissa fall kan du behöva flytta en konversation till en viss mapp. Följande är stegen för att flytta konversationer i MS Exchange Server i C# .NET.

Följande kodexempel visar hur man flyttar en konversation i MS Exchange Server med 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);

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

// Få konversationer
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

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

    // Flytta konversationsobjektet baserat på något villkor
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.MoveConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
        Console.WriteLine("Moved the conversation item to another folder");
    }
}

Ta bort en konversation på MS Exchange Server i C#

Sist men inte minst, låt oss ta en titt på hur man tar bort en konversation från MS Exchange Server i C#.

Följande kodexempel visar hur man tar bort en konversation från MS Exchange Server i 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);

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

// Få konversationer
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

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

    // Ta bort konversationsobjektet baserat på något villkor
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.DeleteConversationItems(conversation.ConversationId);
        Console.WriteLine("Deleted the conversation item");
    }
}

Skaffa en gratis API-licens

Du kan få en gratis temporär licens för att använda Aspose.Email för .NET utan utvärderingsbegränsningar.

Slutsats

I den här artikeln har du lärt dig hur du hanterar konversationer i Microsoft Exchange Server med C#. Du har sett hur man hittar, kopierar, flyttar och tar bort konversationer på MS Exchange Server programmatiskt i C#. Dessutom kan du utforska dokumentationen för att läsa mer om Aspose.Email för .NET. Du kan också ställa dina frågor via vårt forum.

Se även