Thêm hoặc Xóa Liên hệ khỏi Máy chủ Microsoft Exchange trong Java

Microsoft Exchange Server là một máy chủ lịch và email cung cấp các dịch vụ cộng tác khác nhau như email, lịch, quản lý danh bạ, v.v. Trong một trong những bài đăng của tôi, tôi đã chỉ cho bạn cách truy cập và đọc email từ Microsoft Exchange Server lập trình trong Java. Tuy nhiên, chúng tôi thường cần danh sách liên hệ mà chúng tôi có trên MS Exchange Server. Vì vậy, trong bài viết này, bạn sẽ tìm hiểu cách thêm, xóa hoặc cập nhật danh bạ trên Microsoft Exchange Server bằng Java.

API Java để truy cập Danh bạ trên Máy chủ MS Exchange

Aspose.Email for Java là một API phổ biến để triển khai các ứng dụng email client trong Java. Hơn nữa, nó cho phép bạn làm việc với MS Exchange Server và thao tác với danh bạ, email và các mục hội thoại. Chúng tôi sẽ sử dụng API này để thêm, cập nhật và xóa địa chỉ liên hệ trên Exchange Server. Bạn có thể tải xuống JAR của 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>

Thêm Liên hệ vào Máy chủ MS Exchange trong Java

Sau đây là các bước để thêm liên hệ vào Microsoft Exchange Server trong Java.

  • Đầu tiên, tạo và khởi tạo đối tượng NetworkCredential với tên người dùng, mật khẩu và miền.
  • Sau đó, khởi tạo IEWSClient với URI hộp thư và đối tượng NetworkCredential.
  • Tạo một đối tượng của lớp Liên hệ và đặt các thuộc tính của nó như tên, công việc, giới tính, điện thoại, những người có liên quan, v.v.
  • Cuối cùng, gọi phương thức EWSClient.createContact (Liên hệ) để thêm liên hệ.

Mẫu mã sau đây cho biết cách thêm liên hệ vào Microsoft 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);

// Tạo liên hệ mới
Contact contact = new Contact();

// Đặt thông tin chung
contact.setGender(Gender.Male);
contact.setDisplayName("Frank Lin");
contact.setCompanyName("ABC Co.");
contact.setJobTitle("Executive Manager");
PhoneNumber tmp0 = new PhoneNumber();
tmp0.setNumber("123456789");
tmp0.setCategory(PhoneNumberCategory.getHome());

// Thêm số điện thoại
contact.getPhoneNumbers().add(tmp0);
AssociatedPerson tmp1 = new AssociatedPerson();
tmp1.setName("Catherine");
tmp1.setCategory(AssociatedPersonCategory.getSpouse());

// Người liên hệ của liên hệ
contact.getAssociatedPersons().add(tmp1);
AssociatedPerson tmp2 = new AssociatedPerson();
tmp2.setName("Bob");
tmp2.setCategory(AssociatedPersonCategory.getChild());
contact.getAssociatedPersons().add(tmp2);
AssociatedPerson tmp3 = new AssociatedPerson();
tmp3.setName("Merry");
tmp3.setCategory(AssociatedPersonCategory.getSister());
contact.getAssociatedPersons().add(tmp3);
Url tmp4 = new Url();
tmp4.setHref("www.blog.com");
tmp4.setCategory(UrlCategory.getBlog());

// URL
contact.getUrls().add(tmp4);
Url tmp5 = new Url();
tmp5.setHref("www.homepage.com");
tmp5.setCategory(UrlCategory.getHomePage());
contact.getUrls().add(tmp5);
EmailAddress tmp6 = new EmailAddress();
tmp6.setAddress("Frank.Lin@Abc.com");
tmp6.setDisplayName("Frank Lin");
tmp6.setCategory(EmailAddressCategory.getEmail1());

// Đặt địa chỉ email của người liên hệ
contact.getEmailAddresses().add(tmp6);

try {
	// Tạo ra liên lạc
	client.createContact(contact);
} catch (java.lang.RuntimeException ex) {
	System.out.println(ex.getMessage());
}

Xóa Liên hệ khỏi Máy chủ MS Exchange trong Java

Bạn cũng có thể xóa một số liên lạc khỏi MS Exchange Server. Để lọc địa chỉ liên hệ, bạn có thể sử dụng tên, email hoặc bất kỳ thuộc tính phù hợp nào khác. Sau đây là các bước để xóa một liên hệ khỏi Microsoft Exchange Server trong Java.

Mẫu mã sau đây cho thấy cách xóa địa chỉ liên hệ khỏi Microsoft Exchange Server trong Java.

// Khởi tạo ứng dụng khách EWS
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");

// Tên Liên lạc
String strContactToDelete = "John Teddy";

// Nhận danh bạ
Contact[] contacts = client.getContacts(client.getMailboxInfo().getContactsUri());

// Lặp qua danh bạ
for (Contact contact : contacts) {
    if (contact.getDisplayName().equals(strContactToDelete))
    	// Xóa liên lạc
        client.deleteItem(contact.getId().getEWSId(), DeletionOptions.getDeletePermanently());
}
client.dispose();

Cập nhật Liên hệ trên Máy chủ Exchange trong Java

Aspose.Email for Java cũng cho phép bạn cập nhật một số liên lạc trên MS Exchange Server. Sau đây là các bước để thực hiện thao tác này.

Mẫu mã sau đây cho thấy cách cập nhật liên hệ trên 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);

// Khởi tạo ứng dụng khách EWS
IEWSClient client = EWSClient.getEWSClient(mailboxUri, credentials);

// Liệt kê tất cả các địa chỉ liên hệ và lặp qua tất cả các địa chỉ liên hệ
Contact[] contacts = client.getContacts(client.getMailboxInfo().getContactsUri());
Contact contact = contacts[0];

// Cập nhật chi tiết liên hệ
System.out.println("Name: " + contact.getDisplayName());
contact.setDisplayName("David Ch");
client.updateContact(contact);

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 làm việc với các liên hệ trên Microsoft Exchange Server bằng Java. Chúng tôi đã trình bày cách thêm, xóa và cập nhật các liên hệ từ Máy chủ MS Exchange 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ể đăng các câu hỏi của mình trên diễn đàn của chúng tôi.

Xem thêm