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
- Hitta konversationer på MS Exchange Server i C#
- Kopiera en konversation på MS Exchange Server i C#
- Flytta en konversation på MS Exchange Server i C#
- Ta bort en konversation på MS Exchange Server i C#
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#.
- Skapa och initiera först NetworkCredential-objektet med användarnamn, lösenord och domän.
- Initiera sedan IEWSClient med postlåde-URI och NetworkCredential-objekt.
- Ring metoden IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri) och få konversationer i en ExchangeConversation-array.
- Slutligen går du igenom varje ExchangeConversation-objekt i arrayen och hämtar dess detaljer.
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.
- Skapa och initiera först NetworkCredential-objektet med användarnamn, lösenord och domän.
- Initiera sedan IEWSClient med postlåde-URI och NetworkCredential-objekt.
- Ring metoden IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri) och få konversationer i en ExchangeConversation-array.
- Gå igenom varje ExchangeConversation i arrayen och filtrera den eller de nödvändiga.
- Slutligen, kopiera konversationen med metoden IEWSClient.CopyConversationItems(ExchangeConversation.ConversationId, client.MailboxInfo.DeletedItemsUri).
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.
- Skapa och initiera först NetworkCredential-objektet med användarnamn, lösenord och domän.
- Initiera sedan IEWSClient med postlåde-URI och NetworkCredential-objekt.
- Ring metoden IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri) och få konversationer i en ExchangeConversation-array.
- Gå igenom varje ExchangeConversation i arrayen och filtrera den eller de nödvändiga.
- Flytta slutligen konversationen med metoden IEWSClient.MoveConversationItems(ExchangeConversation.ConversationId, client.MailboxInfo.DeletedItemsUri).
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#.
- Skapa och initiera först NetworkCredential-objektet med användarnamn, lösenord och domän.
- Initiera sedan IEWSClient med postlåde-URI och NetworkCredential-objekt.
- Efter det, anrop IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri)-metoden och få konversationer i en ExchangeConversation-array.
- Gå igenom varje ExchangeConversation i arrayen och filtrera den eller de nödvändiga.
- Ta slutligen bort en konversation med metoden IEWSClient.DeleteConversationItems(ExchangeConversation.ConversationId).
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.