Arbeta med konversationer på MS Exchange Server i Java

Ofta består ett e-postmeddelande av flera meddelanden (eller svar) som bildar en tråd. I Microsoft Exchange Server kallas dessa trådar som konversationer. När du arbetar med MS Exchange Server programmatiskt kan du behöva komma åt och hantera konversationerna. För att åstadkomma det kommer du i den här artikeln att lära dig hur du hittar, kopierar, flyttar och tar bort konversationer på Microsoft Exchange Server i Java.

Java API för att arbeta med konversationer på MS Exchange Server

För att arbeta med konversationerna på Microsoft Exchange Server kommer vi att använda Aspose.Email for Java. Det är ett fantastiskt API som ger ett gäng funktioner för att arbeta med MS Exchange Server från Java-applikationer. Du kan antingen ladda ner API:et eller installera det med hjälp av följande Maven-konfigurationer.

Förvar:

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

Beroende:

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

Hitta konversationer på MS Exchange Server i Java

Följande är stegen för att hitta konversationer från en mapp i MS Exchange Server med Java.

Följande kodexempel visar hur man hittar konversationer från en mapp i MS Exchange Server i Java.

// Ställ in postlådans URI, användarnamn, lösenord, domäninformation
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");

// Hitta konversationsobjekt i inkorgen
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Visa alla konversationer
for (ExchangeConversation conversation : conversations) {
	// Visa konversationsegenskaper som Id och Ämne
	System.out.println("Topic: " + conversation.getConversationTopic());
	System.out.println("Flag Status: " + conversation.getFlagStatus());
	System.out.println();
}

Kopiera en konversation på MS Exchange Server i Java

Du kan också kopiera konversationerna från en mapp till en annan. Låt oss ta en titt på hur man kopierar konversationer från inkorgen till mappen för borttagna objekt i Exchange Server i Java.

Följande kodexempel visar hur man kopierar en konversation i MS Exchange Server med Java.

// Ställ in postlådans URI, användarnamn, lösenord, domäninformation
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");

// Hitta konversationsobjekt i inkorgen
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Visa alla konversationer
for (ExchangeConversation conversation : conversations) {
	System.out.println("Topic: " + conversation.getConversationTopic());
    
	// Kopiera konversationsobjektet baserat på något villkor
    if (conversation.getConversationTopic().contains("test email")) {
        client.copyConversationItems(conversation.getConversationId(), client.getMailboxInfo().getDeletedItemsUri());
        System.out.println("Copied the conversation item to another folder");
    }
}

Flytta en konversation på MS Exchange Server i Java

I föregående avsnitt kopierade vi bara konversationer från en mapp till en annan. Men i vissa fall kan du behöva flytta en konversation till en viss mapp. Följande är stegen för att flytta en konversation i MS Exchange Server i Java.

Följande kodexempel visar hur man flyttar en konversation i MS Exchange Server med Java.

// Ställ in postlådans URI, användarnamn, lösenord, domäninformation
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");

// Hitta konversationsobjekt i inkorgen
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Visa alla konversationer
for (ExchangeConversation conversation : conversations) {
	System.out.println("Topic: " + conversation.getConversationTopic());
    
	// Flytta konversationsobjektet baserat på något villkor
    if (conversation.getConversationTopic().contains("test email") == true) {
        client.moveConversationItems(conversation.getConversationId(), client.getMailboxInfo().getDeletedItemsUri());
        System.out.println("Moved the conversation item to another folder");
    }
}

Ta bort en konversation på MS Exchange Server i Java

Till sist, låt oss ta en titt på hur man tar bort en konversation från MS Exchange Server i Java.

Följande kodexempel visar hur man tar bort en konversation från MS Exchange Server i Java.

// Ställ in postlådans URI, användarnamn, lösenord, domäninformation
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");

// Hitta konversationsobjekt i inkorgen
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Visa alla konversationer
for (ExchangeConversation conversation : conversations) {
	System.out.println("Topic: " + conversation.getConversationTopic());
    
	// Ta bort konversationsobjektet baserat på något villkor
    if (conversation.getConversationTopic().contains("test email") == true) {
        client.deleteConversationItems(conversation.getConversationId());
        System.out.println("Deleted the conversation item");
    }
}

Skaffa en gratis API-licens

Du kan få en gratis temporär licens för att använda Aspose.Email för Java utan utvärderingsbegränsningar.

Slutsats

I den här artikeln har du lärt dig hur du hanterar konversationer i Microsoft Exchange Server med Java. Du har sett hur man hittar, kopierar, flyttar och tar bort en konversation på MS Exchange Server programmatiskt i Java. Dessutom kan du utforska dokumentationen för att läsa mer om Aspose.Email för Java. Du kan också ställa dina frågor via vårt forum.

Se även