Travailler avec des conversations sur MS Exchange Server en Java

Souvent, un e-mail est composé de plusieurs messages (ou réponses) formant un fil. Dans Microsoft Exchange Server, ces threads sont appelés conversations. Lorsque vous travaillez avec MS Exchange Server par programmation, vous devrez peut-être accéder aux conversations et les gérer. Pour ce faire, dans cet article, vous apprendrez à rechercher, copier, déplacer et supprimer des conversations sur Microsoft Exchange Server en Java.

API Java pour travailler avec les conversations sur MS Exchange Server

Pour travailler avec les conversations sur Microsoft Exchange Server, nous utiliserons Aspose.Email for Java. Il s’agit d’une API étonnante qui fournit un ensemble de fonctionnalités permettant de travailler avec MS Exchange Server à partir d’applications Java. Vous pouvez soit télécharger l’API ou l’installer à l’aide des configurations Maven suivantes.

Repository:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>

Dependency:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-email</artifactId>
    <version>22.2</version>
    <classifier>jdk16</classifier>
</dependency>

Rechercher des conversations sur MS Exchange Server en Java

Voici les étapes pour rechercher des conversations à partir d’un dossier dans MS Exchange Server à l’aide de Java.

L’exemple de code suivant montre comment rechercher des conversations à partir d’un dossier dans MS Exchange Server en Java.

// Définir l'URI de la boîte aux lettres, le nom d'utilisateur, le mot de passe, les informations de domaine
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);

IEWSClient client = EWSClient.getEWSClient(mailboxUri, credentials);
System.out.println("Connected to Exchange");

// Rechercher des éléments de conversation dans le dossier de la boîte de réception
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Afficher toutes les conversations
for (ExchangeConversation conversation : conversations) {
	// Afficher les propriétés de conversation comme l'identifiant et le sujet
	System.out.println("Topic: " + conversation.getConversationTopic());
	System.out.println("Flag Status: " + conversation.getFlagStatus());
	System.out.println();
}

Copier une conversation sur MS Exchange Server en Java

Vous pouvez également copier les conversations d’un dossier à un autre. Voyons comment copier des conversations de la boîte de réception vers le dossier des éléments supprimés d’Exchange Server en Java.

L’exemple de code suivant montre comment copier une conversation dans MS Exchange Server à l’aide de Java.

// Définir l'URI de la boîte aux lettres, le nom d'utilisateur, le mot de passe, les informations de domaine
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);

IEWSClient client = EWSClient.getEWSClient(mailboxUri, credentials);
System.out.println("Connected to Exchange");

// Rechercher des éléments de conversation dans le dossier de la boîte de réception
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Afficher toutes les conversations
for (ExchangeConversation conversation : conversations) {
	System.out.println("Topic: " + conversation.getConversationTopic());
    
	// Copiez l'élément de conversation en fonction de certaines conditions
    if (conversation.getConversationTopic().contains("test email")) {
        client.copyConversationItems(conversation.getConversationId(), client.getMailboxInfo().getDeletedItemsUri());
        System.out.println("Copied the conversation item to another folder");
    }
}

Déplacer une conversation sur MS Exchange Server en Java

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 une conversation dans MS Exchange Server en Java.

L’exemple de code suivant montre comment déplacer une conversation dans MS Exchange Server à l’aide de Java.

// Définir l'URI de la boîte aux lettres, le nom d'utilisateur, le mot de passe, les informations de domaine
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);

IEWSClient client = EWSClient.getEWSClient(mailboxUri, credentials);
System.out.println("Connected to Exchange");

// Rechercher des éléments de conversation dans le dossier de la boîte de réception
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Afficher toutes les conversations
for (ExchangeConversation conversation : conversations) {
	System.out.println("Topic: " + conversation.getConversationTopic());
    
	// Déplacer l'élément de conversation en fonction de certaines conditions
    if (conversation.getConversationTopic().contains("test email") == true) {
        client.moveConversationItems(conversation.getConversationId(), client.getMailboxInfo().getDeletedItemsUri());
        System.out.println("Moved the conversation item to another folder");
    }
}

Supprimer une conversation sur MS Exchange Server en Java

Enfin, voyons comment supprimer une conversation de MS Exchange Server en Java.

L’exemple de code suivant montre comment supprimer une conversation de MS Exchange Server en Java.

// Définir l'URI de la boîte aux lettres, le nom d'utilisateur, le mot de passe, les informations de domaine
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);

IEWSClient client = EWSClient.getEWSClient(mailboxUri, credentials);
System.out.println("Connected to Exchange");

// Rechercher des éléments de conversation dans le dossier de la boîte de réception
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Afficher toutes les conversations
for (ExchangeConversation conversation : conversations) {
	System.out.println("Topic: " + conversation.getConversationTopic());
    
	// Supprimer l'élément de conversation en fonction de certaines conditions
    if (conversation.getConversationTopic().contains("test email") == true) {
        client.deleteConversationItems(conversation.getConversationId());
        System.out.println("Deleted the conversation item");
    }
}

Obtenez une licence API gratuite

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

Conclusion

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

Voir également