Lavora con le conversazioni su MS Exchange Server in Java

Spesso un’e-mail è composta da più messaggi (o risposte) che formano un thread. In Microsoft Exchange Server, questi thread sono definiti conversazioni. Mentre si lavora con MS Exchange Server a livello di codice, potrebbe essere necessario accedere e gestire le conversazioni. A tal fine, in questo articolo imparerai come trovare, copiare, spostare ed eliminare conversazioni su Microsoft Exchange Server in Java.

API Java per lavorare con le conversazioni su MS Exchange Server

Per lavorare con le conversazioni su Microsoft Exchange Server, utilizzeremo Aspose.Email per Java. È un’API straordinaria che fornisce un sacco di funzionalità per lavorare con MS Exchange Server dall’interno delle applicazioni Java. Puoi scaricare l’API o installarla utilizzando le seguenti configurazioni Maven.

Archivio:

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

Dipendenza:

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

Trova conversazioni su MS Exchange Server in Java

Di seguito sono riportati i passaggi per trovare conversazioni da una cartella in MS Exchange Server utilizzando Java.

L’esempio di codice seguente mostra come trovare conversazioni da una cartella in MS Exchange Server in Java.

// Imposta l'URI della casella di posta, il nome utente, la password, le informazioni sul dominio
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");

// Trova gli elementi della conversazione nella cartella Posta in arrivo
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Mostra tutte le conversazioni
for (ExchangeConversation conversation : conversations) {
	// Visualizza le proprietà della conversazione come ID e Argomento
	System.out.println("Topic: " + conversation.getConversationTopic());
	System.out.println("Flag Status: " + conversation.getFlagStatus());
	System.out.println();
}

Copia una conversazione su MS Exchange Server in Java

Puoi anche copiare le conversazioni da una cartella all’altra. Diamo un’occhiata a come copiare le conversazioni dalla posta in arrivo alla cartella degli elementi eliminati di Exchange Server in Java.

L’esempio di codice seguente mostra come copiare una conversazione in MS Exchange Server utilizzando Java.

// Imposta l'URI della casella di posta, il nome utente, la password, le informazioni sul dominio
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");

// Trova gli elementi della conversazione nella cartella Posta in arrivo
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Mostra tutte le conversazioni
for (ExchangeConversation conversation : conversations) {
	System.out.println("Topic: " + conversation.getConversationTopic());
    
	// Copia l'elemento della conversazione in base ad alcune condizioni
    if (conversation.getConversationTopic().contains("test email")) {
        client.copyConversationItems(conversation.getConversationId(), client.getMailboxInfo().getDeletedItemsUri());
        System.out.println("Copied the conversation item to another folder");
    }
}

Sposta una conversazione su MS Exchange Server in Java

Nella sezione precedente, abbiamo appena copiato le conversazioni da una cartella all’altra. Tuttavia, in alcuni casi, potrebbe essere necessario spostare una conversazione in una cartella particolare. Di seguito sono riportati i passaggi per spostare una conversazione in MS Exchange Server in Java.

L’esempio di codice seguente mostra come spostare una conversazione in MS Exchange Server utilizzando Java.

// Imposta l'URI della casella di posta, il nome utente, la password, le informazioni sul dominio
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");

// Trova gli elementi della conversazione nella cartella Posta in arrivo
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Mostra tutte le conversazioni
for (ExchangeConversation conversation : conversations) {
	System.out.println("Topic: " + conversation.getConversationTopic());
    
	// Sposta l'elemento della conversazione in base ad alcune condizioni
    if (conversation.getConversationTopic().contains("test email") == true) {
        client.moveConversationItems(conversation.getConversationId(), client.getMailboxInfo().getDeletedItemsUri());
        System.out.println("Moved the conversation item to another folder");
    }
}

Elimina una conversazione su MS Exchange Server in Java

Alla fine, diamo un’occhiata a come eliminare una conversazione da MS Exchange Server in Java.

L’esempio di codice seguente mostra come eliminare una conversazione da MS Exchange Server in Java.

// Imposta l'URI della casella di posta, il nome utente, la password, le informazioni sul dominio
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");

// Trova gli elementi della conversazione nella cartella Posta in arrivo
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Mostra tutte le conversazioni
for (ExchangeConversation conversation : conversations) {
	System.out.println("Topic: " + conversation.getConversationTopic());
    
	// Elimina l'elemento della conversazione in base ad alcune condizioni
    if (conversation.getConversationTopic().contains("test email") == true) {
        client.deleteConversationItems(conversation.getConversationId());
        System.out.println("Deleted the conversation item");
    }
}

Ottieni una licenza API gratuita

Puoi ottenere una licenza temporanea gratuita per utilizzare Aspose.Email per Java senza limitazioni di valutazione.

Conclusione

In questo articolo hai imparato come gestire le conversazioni in Microsoft Exchange Server utilizzando Java. Hai visto come trovare, copiare, spostare ed eliminare una conversazione su MS Exchange Server a livello di codice in Java. Inoltre, puoi esplorare la documentazione per saperne di più su Aspose.Email per Java. Inoltre, puoi porre le tue domande tramite il nostro forum.

Guarda anche