Pracuj z konwersacjami na MS Exchange Server w Javie

Często wiadomość e-mail składa się z wielu wiadomości (lub odpowiedzi) tworzących wątek. W Microsoft Exchange Server te wątki są nazywane konwersacjami. Podczas programowej pracy z MS Exchange Server może być konieczne uzyskanie dostępu do konwersacji i zarządzanie nimi. Aby to osiągnąć, w tym artykule dowiesz się, jak wyszukiwać, kopiować, przenosić i usuwać konwersacje na serwerze Microsoft Exchange Server w Javie.

Java API do pracy z konwersacjami na MS Exchange Server

Do pracy z konwersacjami na Microsoft Exchange Server użyjemy Aspose.Email for Java. Jest to niesamowity interfejs API, który zapewnia szereg funkcji do pracy z MS Exchange Server z poziomu aplikacji Java. Możesz pobrać interfejs API lub zainstalować go przy użyciu następujących konfiguracji Mavena.

Magazyn:

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

Zależność:

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

Znajdź konwersacje na MS Exchange Server w Javie

Poniżej przedstawiono kroki, aby znaleźć konwersacje z folderu w MS Exchange Server przy użyciu języka Java.

Poniższy przykładowy kod pokazuje, jak znaleźć konwersacje z folderu w MS Exchange Server w Javie.

// Ustaw URI skrzynki pocztowej, nazwę użytkownika, hasło, informacje o domenie
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");

// Znajdź elementy rozmowy w folderze skrzynki odbiorczej
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Pokaż wszystkie rozmowy
for (ExchangeConversation conversation : conversations) {
	// Wyświetl właściwości rozmowy, takie jak identyfikator i temat
	System.out.println("Topic: " + conversation.getConversationTopic());
	System.out.println("Flag Status: " + conversation.getFlagStatus());
	System.out.println();
}

Skopiuj konwersację na MS Exchange Server w Javie

Możesz także kopiować rozmowy z jednego folderu do drugiego. Przyjrzyjmy się, jak skopiować rozmowy ze skrzynki odbiorczej do folderu elementów usuniętych serwera Exchange w Javie.

Poniższy przykładowy kod pokazuje, jak skopiować konwersację w MS Exchange Server przy użyciu języka Java.

// Ustaw URI skrzynki pocztowej, nazwę użytkownika, hasło, informacje o domenie
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");

// Znajdź elementy rozmowy w folderze skrzynki odbiorczej
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Pokaż wszystkie rozmowy
for (ExchangeConversation conversation : conversations) {
	System.out.println("Topic: " + conversation.getConversationTopic());
    
	// Skopiuj element rozmowy na podstawie pewnego warunku
    if (conversation.getConversationTopic().contains("test email")) {
        client.copyConversationItems(conversation.getConversationId(), client.getMailboxInfo().getDeletedItemsUri());
        System.out.println("Copied the conversation item to another folder");
    }
}

Przenieś konwersację na MS Exchange Server w Javie

W poprzedniej sekcji właśnie skopiowaliśmy rozmowy z jednego folderu do drugiego. Jednak w niektórych przypadkach może być konieczne przeniesienie konwersacji do określonego folderu. Poniżej przedstawiono kroki, aby przenieść konwersację w MS Exchange Server w Javie.

Poniższy przykładowy kod pokazuje, jak przenieść konwersację w MS Exchange Server przy użyciu języka Java.

// Ustaw URI skrzynki pocztowej, nazwę użytkownika, hasło, informacje o domenie
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");

// Znajdź elementy rozmowy w folderze skrzynki odbiorczej
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Pokaż wszystkie rozmowy
for (ExchangeConversation conversation : conversations) {
	System.out.println("Topic: " + conversation.getConversationTopic());
    
	// Przenieś element konwersacji na podstawie pewnych warunków
    if (conversation.getConversationTopic().contains("test email") == true) {
        client.moveConversationItems(conversation.getConversationId(), client.getMailboxInfo().getDeletedItemsUri());
        System.out.println("Moved the conversation item to another folder");
    }
}

Usuń konwersację na MS Exchange Server w Javie

Na koniec przyjrzyjmy się, jak usunąć rozmowę z MS Exchange Server w Javie.

Poniższy przykładowy kod pokazuje, jak usunąć konwersację z MS Exchange Server w Javie.

// Ustaw URI skrzynki pocztowej, nazwę użytkownika, hasło, informacje o domenie
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");

// Znajdź elementy rozmowy w folderze skrzynki odbiorczej
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Pokaż wszystkie rozmowy
for (ExchangeConversation conversation : conversations) {
	System.out.println("Topic: " + conversation.getConversationTopic());
    
	// Usuń element konwersacji na podstawie pewnych warunków
    if (conversation.getConversationTopic().contains("test email") == true) {
        client.deleteConversationItems(conversation.getConversationId());
        System.out.println("Deleted the conversation item");
    }
}

Uzyskaj bezpłatną licencję API

Możesz uzyskać darmową tymczasową licencję na korzystanie z Aspose.Email for Java bez ograniczeń ewaluacyjnych.

Wniosek

W tym artykule nauczyłeś się, jak zarządzać konwersacjami w Microsoft Exchange Server przy użyciu Javy. Widziałeś, jak znaleźć, skopiować, przenieść i usunąć konwersację na MS Exchange Server programowo w Javie. Ponadto możesz zapoznać się z dokumentacją, aby dowiedzieć się więcej o Aspose.Email for Java. Możesz także zadawać pytania za pośrednictwem naszego forum.

Zobacz też