Trabajar con conversaciones en MS Exchange Server en Java

A menudo, un correo electrónico se compone de múltiples mensajes (o respuestas) que forman un hilo. En Microsoft Exchange Server, estos subprocesos se denominan conversaciones. Mientras trabaja con MS Exchange Server mediante programación, es posible que necesite acceder y administrar las conversaciones. Para lograrlo, en este artículo, aprenderá a buscar, copiar, mover y eliminar conversaciones en Microsoft Exchange Server en Java.

API de Java para trabajar con conversaciones en MS Exchange Server

Para trabajar con las conversaciones en Microsoft Exchange Server, usaremos Aspose.Email for Java. Es una API increíble que proporciona un montón de funciones para trabajar con MS Exchange Server desde aplicaciones Java. Puede descargar la API o instalarla usando las siguientes configuraciones de Maven.

Repositorio:

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

Dependencia:

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

Buscar conversaciones en MS Exchange Server en Java

Los siguientes son los pasos para encontrar conversaciones desde una carpeta en MS Exchange Server usando Java.

El siguiente ejemplo de código muestra cómo encontrar conversaciones desde una carpeta en MS Exchange Server en Java.

// Establecer URI de buzón, nombre de usuario, contraseña, información de 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");

// Buscar elementos de conversación en la carpeta de la bandeja de entrada
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Mostrar todas las conversaciones
for (ExchangeConversation conversation : conversations) {
	// Mostrar propiedades de conversación como Id y Tema
	System.out.println("Topic: " + conversation.getConversationTopic());
	System.out.println("Flag Status: " + conversation.getFlagStatus());
	System.out.println();
}

Copie una conversación en MS Exchange Server en Java

También puede copiar las conversaciones de una carpeta a otra. Veamos cómo copiar conversaciones desde la bandeja de entrada a la carpeta de elementos eliminados de Exchange Server en Java.

El siguiente ejemplo de código muestra cómo copiar una conversación en MS Exchange Server utilizando Java.

// Establecer URI de buzón, nombre de usuario, contraseña, información de 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");

// Buscar elementos de conversación en la carpeta de la bandeja de entrada
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Mostrar todas las conversaciones
for (ExchangeConversation conversation : conversations) {
	System.out.println("Topic: " + conversation.getConversationTopic());
    
	// Copie el elemento de conversación en función de alguna condición.
    if (conversation.getConversationTopic().contains("test email")) {
        client.copyConversationItems(conversation.getConversationId(), client.getMailboxInfo().getDeletedItemsUri());
        System.out.println("Copied the conversation item to another folder");
    }
}

Mover una conversación en MS Exchange Server en Java

En la sección anterior, simplemente copiamos conversaciones de una carpeta a otra. Sin embargo, en ciertos casos, es posible que deba mover una conversación a una carpeta en particular. Los siguientes son los pasos para mover una conversación en MS Exchange Server en Java.

El siguiente ejemplo de código muestra cómo mover una conversación en MS Exchange Server usando Java.

// Establecer URI de buzón, nombre de usuario, contraseña, información de 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");

// Buscar elementos de conversación en la carpeta de la bandeja de entrada
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Mostrar todas las conversaciones
for (ExchangeConversation conversation : conversations) {
	System.out.println("Topic: " + conversation.getConversationTopic());
    
	// Mover el elemento de conversación en función de alguna condición
    if (conversation.getConversationTopic().contains("test email") == true) {
        client.moveConversationItems(conversation.getConversationId(), client.getMailboxInfo().getDeletedItemsUri());
        System.out.println("Moved the conversation item to another folder");
    }
}

Eliminar una conversación en MS Exchange Server en Java

Al final, echemos un vistazo a cómo eliminar una conversación de MS Exchange Server en Java.

El siguiente ejemplo de código muestra cómo eliminar una conversación de MS Exchange Server en Java.

// Establecer URI de buzón, nombre de usuario, contraseña, información de 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");

// Buscar elementos de conversación en la carpeta de la bandeja de entrada
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Mostrar todas las conversaciones
for (ExchangeConversation conversation : conversations) {
	System.out.println("Topic: " + conversation.getConversationTopic());
    
	// Eliminar el elemento de conversación en función de alguna condición
    if (conversation.getConversationTopic().contains("test email") == true) {
        client.deleteConversationItems(conversation.getConversationId());
        System.out.println("Deleted the conversation item");
    }
}

Obtenga una licencia de API gratuita

Puede obtener una licencia temporal gratuita para usar Aspose.Email for Java sin limitaciones de evaluación.

Conclusión

En este artículo, aprendió a administrar conversaciones en Microsoft Exchange Server utilizando Java. Ha visto cómo buscar, copiar, mover y eliminar una conversación en MS Exchange Server mediante programación en Java. Además, puede explorar la documentación para obtener más información sobre Aspose.Email for Java. Además, puede hacer sus preguntas a través de nuestro foro.

Ver también