Trabalhar com conversas no MS Exchange Server em Java

Muitas vezes, um e-mail é composto por várias mensagens (ou respostas) formando um tópico. No Microsoft Exchange Server, esses segmentos são denominados como conversas. Ao trabalhar com o MS Exchange Server programaticamente, pode ser necessário acessar e gerenciar as conversas. Para isso, neste artigo, você aprenderá como localizar, copiar, mover e excluir conversas no Microsoft Exchange Server em Java.

API Java para trabalhar com conversas no MS Exchange Server

Para trabalhar com as conversas no Microsoft Exchange Server, usaremos Aspose.Email for Java. É uma API incrível que fornece vários recursos para trabalhar com o MS Exchange Server a partir de aplicativos Java. Você pode baixar a API ou instalá-la usando as seguintes configurações do Maven.

Repositório:

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

Dependência:

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

Encontre conversas no MS Exchange Server em Java

A seguir estão as etapas para localizar conversas de uma pasta no MS Exchange Server usando Java.

O exemplo de código a seguir mostra como localizar conversas de uma pasta no MS Exchange Server em Java.

// Definir URI de caixa de correio, nome de usuário, senha, informações de domínio
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");

// Encontre itens de conversa na pasta da caixa de entrada
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Mostrar todas as conversas
for (ExchangeConversation conversation : conversations) {
	// Exibir propriedades de conversa como Id e Topic
	System.out.println("Topic: " + conversation.getConversationTopic());
	System.out.println("Flag Status: " + conversation.getFlagStatus());
	System.out.println();
}

Copie uma conversa no MS Exchange Server em Java

Você também pode copiar as conversas de uma pasta para outra. Vamos dar uma olhada em como copiar conversas da caixa de entrada para a pasta de itens excluídos do Exchange Server em Java.

O exemplo de código a seguir mostra como copiar uma conversa no MS Exchange Server usando Java.

// Definir URI de caixa de correio, nome de usuário, senha, informações de domínio
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");

// Encontre itens de conversa na pasta da caixa de entrada
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Mostrar todas as conversas
for (ExchangeConversation conversation : conversations) {
	System.out.println("Topic: " + conversation.getConversationTopic());
    
	// Copie o item de conversa com base em alguma condição
    if (conversation.getConversationTopic().contains("test email")) {
        client.copyConversationItems(conversation.getConversationId(), client.getMailboxInfo().getDeletedItemsUri());
        System.out.println("Copied the conversation item to another folder");
    }
}

Mover uma conversa no MS Exchange Server em Java

Na seção anterior, apenas copiamos as conversas de uma pasta para outra. No entanto, em certos casos, pode ser necessário mover uma conversa para uma pasta específica. A seguir estão as etapas para mover uma conversa no MS Exchange Server em Java.

O exemplo de código a seguir mostra como mover uma conversa no MS Exchange Server usando Java.

// Definir URI de caixa de correio, nome de usuário, senha, informações de domínio
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");

// Encontre itens de conversa na pasta da caixa de entrada
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Mostrar todas as conversas
for (ExchangeConversation conversation : conversations) {
	System.out.println("Topic: " + conversation.getConversationTopic());
    
	// Mova o item de conversa com base em alguma condição
    if (conversation.getConversationTopic().contains("test email") == true) {
        client.moveConversationItems(conversation.getConversationId(), client.getMailboxInfo().getDeletedItemsUri());
        System.out.println("Moved the conversation item to another folder");
    }
}

Excluir uma conversa no MS Exchange Server em Java

No final, vamos dar uma olhada em como excluir uma conversa do MS Exchange Server em Java.

O exemplo de código a seguir mostra como excluir uma conversa do MS Exchange Server em Java.

// Definir URI de caixa de correio, nome de usuário, senha, informações de domínio
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");

// Encontre itens de conversa na pasta da caixa de entrada
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Mostrar todas as conversas
for (ExchangeConversation conversation : conversations) {
	System.out.println("Topic: " + conversation.getConversationTopic());
    
	// Excluir o item de conversa com base em alguma condição
    if (conversation.getConversationTopic().contains("test email") == true) {
        client.deleteConversationItems(conversation.getConversationId());
        System.out.println("Deleted the conversation item");
    }
}

Obtenha uma licença de API gratuita

Você pode obter uma licença temporária gratuita para usar o Aspose.Email for Java sem limitações de avaliação.

Conclusão

Neste artigo, você aprendeu a gerenciar conversas no Microsoft Exchange Server usando Java. Você viu como localizar, copiar, mover e excluir uma conversa no MS Exchange Server programaticamente em Java. Além disso, você pode explorar a documentação para ler mais sobre o Aspose.Email para Java. Além disso, você pode fazer suas perguntas através do nosso fórum.

Veja também