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
- Buscar conversación en MS Exchange Server en Java
- Copie una conversación en MS Exchange Server en Java
- Mover una conversación en MS Exchange Server en Java
- Eliminar una conversación en MS 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.
- Primero, cree e inicialice el objeto NetworkCredential con nombre de usuario, contraseña y dominio.
- Luego, inicialice IEWSClient con el URI del buzón y el objeto NetworkCredential.
- Llame al método IEWSClient.findConversations(IEWSClient.getMailboxInfo().getInboxUri()) y obtenga conversaciones en una matriz ExchangeConversation.
- Finalmente, recorra cada objeto ExchangeConversation en la matriz y recupere sus detalles.
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.
- Primero, cree e inicialice el objeto NetworkCredential con nombre de usuario, contraseña y dominio.
- Luego, inicialice IEWSClient con el URI del buzón y el objeto NetworkCredential.
- Llame al método IEWSClient.findConversations(IEWSClient.getMailboxInfo().getInboxUri())) y obtenga conversaciones en una matriz ExchangeConversation.
- Recorra cada objeto ExchangeConversation en la matriz y filtre uno o varios requeridos.
- Finalmente, copie la conversación usando el método IEWSClient.copyConversationItems(ExchangeConversation.getConversationId(), IEWSClient.getMailboxInfo().getDeletedItemsUri()).
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.
- Primero, cree e inicialice el objeto NetworkCredential con nombre de usuario, contraseña y dominio.
- Luego, inicialice IEWSClient con el URI del buzón y el objeto NetworkCredential.
- Llame al método IEWSClient.findConversations(IEWSClient.getMailboxInfo().getInboxUri())) y obtenga conversaciones en una matriz ExchangeConversation.
- Recorra cada objeto ExchangeConversation en la matriz y filtre uno o varios requeridos.
- Finalmente, mueva la conversación usando el método IEWSClient.moveConversationItems(ExchangeConversation.getConversationId(), IEWSClient.getMailboxInfo().getDeletedItemsUri()).
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.
- Primero, cree e inicialice el objeto NetworkCredential con nombre de usuario, contraseña y dominio.
- Luego, inicialice IEWSClient con el URI del buzón y el objeto NetworkCredential.
- Llame al método IEWSClient.findConversations(IEWSClient.getMailboxInfo().getInboxUri()) y obtenga conversaciones en una matriz ExchangeConversation.
- Recorra cada objeto ExchangeConversation en la matriz y filtre los que se requieran.
- Finalmente, elimine una conversación usando el método IEWSClient.deleteConversationItems(ExchangeConversation.getConversationId()).
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.