Làm việc với Hội thoại trên Máy chủ MS Exchange trong Java

Thông thường, một email bao gồm nhiều thư (hoặc thư trả lời) tạo thành một chuỗi. Trong Microsoft Exchange Server, các chuỗi này được gọi là hội thoại. Trong khi làm việc với MS Exchange Server theo chương trình, bạn có thể cần truy cập và quản lý các cuộc hội thoại. Để thực hiện điều đó, trong bài viết này, bạn sẽ học cách tìm, sao chép, di chuyển và xóa các cuộc hội thoại trên Microsoft Exchange Server bằng Java.

API Java để làm việc với các cuộc hội thoại trên MS Exchange Server

Để làm việc với các cuộc hội thoại trên Microsoft Exchange Server, chúng tôi sẽ sử dụng Aspose.Email dành cho Java. Đây là một API tuyệt vời cung cấp một loạt các tính năng để hoạt động với MS Exchange Server từ bên trong các ứng dụng Java. Bạn có thể tải xuống API hoặc cài đặt nó bằng cách sử dụng các cấu hình Maven sau.

Kho:

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

Sự phụ thuộc:

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

Tìm cuộc hội thoại trên MS Exchange Server bằng Java

Sau đây là các bước để tìm các cuộc hội thoại từ một thư mục trong MS Exchange Server bằng Java.

Mẫu mã sau đây cho thấy cách tìm các cuộc hội thoại từ một thư mục trong MS Exchange Server bằng Java.

// Đặt URI hộp thư, tên người dùng, mật khẩu, thông tin miền
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");

// Tìm các mục hội thoại trong thư mục hộp thư đến
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Hiển thị tất cả các cuộc trò chuyện
for (ExchangeConversation conversation : conversations) {
	// Hiển thị các thuộc tính hội thoại như Id và Chủ đề
	System.out.println("Topic: " + conversation.getConversationTopic());
	System.out.println("Flag Status: " + conversation.getFlagStatus());
	System.out.println();
}

Sao chép cuộc hội thoại trên MS Exchange Server bằng Java

Bạn cũng có thể sao chép các cuộc hội thoại từ thư mục này sang thư mục khác. Chúng ta hãy xem cách sao chép các cuộc hội thoại từ hộp thư đến vào thư mục các mục đã xóa của Exchange Server trong Java.

Mẫu mã sau đây cho thấy cách sao chép một cuộc hội thoại trong MS Exchange Server bằng Java.

// Đặt URI hộp thư, tên người dùng, mật khẩu, thông tin miền
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");

// Tìm các mục hội thoại trong thư mục hộp thư đến
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Hiển thị tất cả các cuộc trò chuyện
for (ExchangeConversation conversation : conversations) {
	System.out.println("Topic: " + conversation.getConversationTopic());
    
	// Sao chép mục hội thoại dựa trên một số điều kiện
    if (conversation.getConversationTopic().contains("test email")) {
        client.copyConversationItems(conversation.getConversationId(), client.getMailboxInfo().getDeletedItemsUri());
        System.out.println("Copied the conversation item to another folder");
    }
}

Di chuyển cuộc hội thoại trên MS Exchange Server trong Java

Trong phần trước, chúng ta vừa sao chép các cuộc hội thoại từ thư mục này sang thư mục khác. Tuy nhiên, trong một số trường hợp nhất định, bạn có thể cần phải chuyển một cuộc hội thoại vào một thư mục cụ thể. Sau đây là các bước để di chuyển một cuộc hội thoại trong MS Exchange Server bằng Java.

Mẫu mã sau đây cho thấy cách di chuyển một cuộc hội thoại trong MS Exchange Server bằng Java.

// Đặt URI hộp thư, tên người dùng, mật khẩu, thông tin miền
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");

// Tìm các mục hội thoại trong thư mục hộp thư đến
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Hiển thị tất cả các cuộc trò chuyện
for (ExchangeConversation conversation : conversations) {
	System.out.println("Topic: " + conversation.getConversationTopic());
    
	// Di chuyển mục hội thoại dựa trên một số điều kiệ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");
    }
}

Xóa cuộc hội thoại trên MS Exchange Server trong Java

Cuối cùng, chúng ta hãy xem cách xóa một cuộc hội thoại khỏi MS Exchange Server trong Java.

Mẫu mã sau đây cho thấy cách xóa một cuộc hội thoại khỏi MS Exchange Server trong Java.

// Đặt URI hộp thư, tên người dùng, mật khẩu, thông tin miền
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");

// Tìm các mục hội thoại trong thư mục hộp thư đến
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());

// Hiển thị tất cả các cuộc trò chuyện
for (ExchangeConversation conversation : conversations) {
	System.out.println("Topic: " + conversation.getConversationTopic());
    
	// Xóa mục hội thoại dựa trên một số điều kiện
    if (conversation.getConversationTopic().contains("test email") == true) {
        client.deleteConversationItems(conversation.getConversationId());
        System.out.println("Deleted the conversation item");
    }
}

Nhận giấy phép API miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để sử dụng Aspose.Email dành cho Java mà không có giới hạn đánh giá.

Sự kết luận

Trong bài viết này, bạn đã học cách quản lý các cuộc hội thoại trong Microsoft Exchange Server bằng Java. Bạn đã thấy cách tìm, sao chép, di chuyển và xóa một cuộc hội thoại trên MS Exchange Server theo lập trình trong Java. Ngoài ra, bạn có thể khám phá tài liệu để đọc thêm về Aspose.Email for Java. Ngoài ra, bạn có thể đặt câu hỏi của mình qua diễn đàn của chúng tôi.

Xem thêm