Travailler avec des conversations dans MS Exchange Server en C#

Les conversations sur Microsoft Exchange Server sont appelées le groupe de messages électroniques dans un fil. En termes simples, un e-mail et toutes ses réponses sont connus pour être une conversation. Dans cet article, nous allons vous montrer comment travailler avec des conversations dans MS Exchange Server par programmation. En particulier, vous apprendrez à rechercher, copier, déplacer et supprimer des conversations sur MS Exchange Server en C# .NET.

API C# .NET pour travailler avec des conversations sur MS Exchange Server

Pour gérer les conversations sur Microsoft Exchange Server, nous utiliserons Aspose.Email for .NET. Il s’agit d’une API puissante qui fournit une gamme de fonctionnalités pour implémenter des applications client de messagerie. En outre, il vous permet d’accéder de manière transparente à divers services de MS Exchange Server. Vous pouvez soit télécharger la DLL de l’API, soit l’installer à partir de NuGet à l’aide de la commande suivante.

PM> Install-Package Aspose.Email

Rechercher des conversations sur MS Exchange Server en C#

Voici les étapes pour rechercher des conversations à partir d’un dossier dans MS Exchange Server en C#.

L’exemple de code suivant montre comment rechercher des conversations à partir d’un dossier dans MS Exchange Server en 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);

// Connectez-vous au serveur MS Exchange
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Obtenez des conversations depuis la boîte de réception
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

// Afficher toutes les conversations
foreach (ExchangeConversation conversation in conversations)
{
    // Afficher les propriétés de conversation comme l'identifiant et le sujet
    Console.WriteLine("Topic: " + conversation.ConversationTopic);
    Console.WriteLine("Flag Status: " + conversation.FlagStatus.ToString());
    Console.WriteLine();
}

Copier une conversation sur MS Exchange Server en C#

Vous pouvez également copier les conversations d’un dossier à un autre sans écrire de code complexe. À titre de démonstration, voyons comment copier des conversations de la boîte de réception vers le dossier des éléments supprimés d’Exchange Server dans C# .NET.

L’exemple de code suivant montre comment copier une conversation dans MS Exchange Server à l’aide de 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);

// Connectez-vous au serveur MS Exchange
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Obtenez des conversations
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

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

    // Copiez l'élément de conversation en fonction de certaines conditions
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.CopyConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
        Console.WriteLine("Copied the conversation item to another folder");
    }
}

Déplacer une conversation sur MS Exchange Server en C#

Dans la section précédente, nous avons simplement copié des conversations d’un dossier à un autre. Cependant, dans certains cas, vous devrez peut-être déplacer une conversation vers un dossier particulier. Voici les étapes pour déplacer des conversations dans MS Exchange Server en C# .NET.

L’exemple de code suivant montre comment déplacer une conversation dans MS Exchange Server à l’aide de 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);

// Connectez-vous au serveur MS Exchange
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Obtenez des conversations
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

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

    // Déplacer l'élément de conversation en fonction de certaines conditions
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.MoveConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
        Console.WriteLine("Moved the conversation item to another folder");
    }
}

Supprimer une conversation sur MS Exchange Server en C#

Dernier point mais non le moindre, voyons comment supprimer une conversation de MS Exchange Server en C#.

L’exemple de code suivant montre comment supprimer une conversation de MS Exchange Server dans 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);

// Connectez-vous au serveur MS Exchange
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Obtenez des conversations
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

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

    // Supprimer l'élément de conversation en fonction de certaines conditions
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.DeleteConversationItems(conversation.ConversationId);
        Console.WriteLine("Deleted the conversation item");
    }
}

Obtenez une licence API gratuite

Vous pouvez obtenir une licence temporaire gratuite pour utiliser Aspose.Email for .NET sans limitations d’évaluation.

Conclusion

Dans cet article, vous avez appris à gérer les conversations dans Microsoft Exchange Server à l’aide de C#. Vous avez vu comment rechercher, copier, déplacer et supprimer des conversations sur MS Exchange Server par programmation en C#. De plus, vous pouvez explorer la documentation pour en savoir plus sur Aspose.Email for .NET. Vous pouvez également poser vos questions via notre forum.

Voir également