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
- Znajdź konwersację na MS Exchange Server w Javie
- Skopiuj konwersację na MS Exchange Server w Javie
- Przenieś konwersację na MS Exchange Server w Javie
- Usuń konwersację na MS 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.
- Najpierw utwórz i zainicjuj obiekt NetworkCredential z nazwą użytkownika, hasłem i domeną.
- Następnie zainicjuj IEWSClient za pomocą identyfikatora URI skrzynki pocztowej i obiektu NetworkCredential.
- Wywołaj metodę IEWSClient.findConversations(IEWSClient.getMailboxInfo().getInboxUri()) i uzyskaj rozmowy w tablicy ExchangeConversation.
- Na koniec przejdź przez każdy obiekt ExchangeConversation w tablicy i pobierz jego szczegóły.
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.
- Najpierw utwórz i zainicjuj obiekt NetworkCredential z nazwą użytkownika, hasłem i domeną.
- Następnie zainicjuj IEWSClient za pomocą identyfikatora URI skrzynki pocztowej i obiektu NetworkCredential.
- Wywołaj metodę IEWSClient.findConversations(IEWSClient.getMailboxInfo().getInboxUri())) i pobierz konwersacje w tablicy ExchangeConversation.
- Przejdź przez każdy obiekt ExchangeConversation w tablicy i przefiltruj wymagane obiekty.
- Na koniec skopiuj konwersację za pomocą metody IEWSClient.copyConversationItems(ExchangeConversation.getConversationId(), IEWSClient.getMailboxInfo().getDeletedItemsUri()).
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.
- Najpierw utwórz i zainicjuj obiekt NetworkCredential z nazwą użytkownika, hasłem i domeną.
- Następnie zainicjuj IEWSClient za pomocą identyfikatora URI skrzynki pocztowej i obiektu NetworkCredential.
- Wywołaj metodę IEWSClient.findConversations(IEWSClient.getMailboxInfo().getInboxUri())) i pobierz konwersacje w tablicy ExchangeConversation.
- Przejrzyj każdy obiekt ExchangeConversation w tablicy i przefiltruj wymagane obiekty.
- Na koniec przenieś konwersację za pomocą metody IEWSClient.moveConversationItems(ExchangeConversation.getConversationId(), IEWSClient.getMailboxInfo().getDeletedItemsUri()).
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.
- Najpierw utwórz i zainicjuj obiekt NetworkCredential z nazwą użytkownika, hasłem i domeną.
- Następnie zainicjuj IEWSClient za pomocą identyfikatora URI skrzynki pocztowej i obiektu NetworkCredential.
- Wywołaj metodę IEWSClient.findConversations(IEWSClient.getMailboxInfo().getInboxUri()) i pobierz konwersacje w tablicy ExchangeConversation.
- Przejrzyj każdy obiekt ExchangeConversation w tablicy i przefiltruj wymagane obiekty.
- Na koniec usuń konwersację za pomocą metody IEWSClient.deleteConversationItems(ExchangeConversation.getConversationId()).
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.