Làm việc với Danh bạ trên Exchange Server
Lấy danh bạ bằng EWS
Aspose.Email cung cấp EWSClient lớp để kết nối tới Microsoft Exchange Server bằng Exchange Web Services. Các đoạn mã sau sử dụng Exchange Web Services để đọc tất cả danh bạ. Đoạn mã dưới đây cho bạn thấy cách lấy Contacts với EWS.
// Create instance of IEWSClient class by giving credentials
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// List all the contacts
Contact[] contacts = client.getContacts(client.getMailboxInfo().getContactsUri());
for (Contact contact : contacts) {
MapiContact mapiContact = Contact.to_MapiContact(contact);
// Display name and email address
System.out.println("Name: " + mapiContact.getNameInfo().getDisplayName() + "+ Email Address: " + mapiContact.getElectronicAddresses().getEmail1());
}
Xác định danh bạ bằng tên danh bạ
Đoạn mã dưới đây cho bạn thấy cách sử dụng get contacts với EWS
// Create instance of IEWSClient class by giving credentials
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// List all the contacts
Contact[] contacts = client.resolveContacts("Changed Name", ExchangeListContactsOptions.FetchPhoto);
for (Contact c : contacts) {
MapiContact contact = Contact.to_MapiContact(c);
// Display name and email address
System.out.println("Name: " + contact.getNameInfo().getDisplayName() + "+ Email Address: " + contact.getElectronicAddresses().getEmail1());
}
Xác định định dạng ghi chú của danh bạ
NotesFormat xác định kiểu định dạng văn bản ghi chú của danh bạ được định nghĩa bởi bộ liệt kê TextFormat.
Lấy danh bạ bằng Id
Một danh bạ cụ thể có thể được truy xuất từ máy chủ bằng ID của nó như được minh hoạ trong đoạn mã mẫu dưới đây.
Contact fetchedContact = client.getContact(id);
Thêm danh bạ
Cái EWSClient lớp createContact() phương pháp có thể được sử dụng để thêm thông tin Contact vào Exchange Server. createContact() phương pháp nhận một Contact đối tượng làm tham số đầu vào.
Để thêm danh bạ vào Exchange Server:
- Khởi tạo EWSClient với địa chỉ và thông tin xác thực.
- Khởi tạo đối tượng Contact với các thuộc tính mong muốn.
- Gọi phương thức CreateContact để thêm danh bạ vào Exchange Server.
Aspose.Email cung cấp EWSClient lớp để kết nối tới Microsoft Exchange Server bằng Exchange Web Services. Đoạn mã cho bạn thấy cách sử dụng Exchange Web Services để thêm danh bạ vào Exchange Server.
// Set mailboxURI, Username, password, domain information
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);
// Create New Contact
Contact contact = new Contact();
// Set general info
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());
// Add Phone numbers
contact.getPhoneNumbers().add(tmp0);
AssociatedPerson tmp1 = new AssociatedPerson();
tmp1.setName("Catherine");
tmp1.setCategory(AssociatedPersonCategory.getSpouse());
// contact's associated persons
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());
// URLs
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());
// Set contact's Email address
contact.getEmailAddresses().add(tmp6);
try {
client.createContact(contact);
} catch (java.lang.RuntimeException ex) {
System.out.println(ex.getMessage());
}
Cập nhật danh bạ
Thông tin danh bạ có thể được cập nhật bằng Microsoft Outlook. Aspose.Email cũng có thể cập nhật thông tin danh bạ trên Exchange Server bằng Exchange Web Service (EWS). của IEWSClient updateContact() phương pháp có thể cập nhật thông tin danh bạ trên Exchange Server.
IEWSClient client = EWSClient.getEWSClient(mailboxUri, credentials);
// List all the contacts and Loop through all contacts
Contact[] contacts = client.getContacts(client.getMailboxInfo().getContactsUri());
Contact contact = contacts[0];
System.out.println("Name: " + contact.getDisplayName());
contact.setDisplayName("David Ch");
client.updateContact(contact);
Xóa danh bạ
Cái EWSClient class cung cấp deleteItem để truy cập và xóa danh bạ từ thư mục contacts của Exchange Server. Phương pháp này nhận ID của danh bạ làm tham số đầu vào.
Để xóa danh bạ khỏi Exchange Server:
- Khởi tạo ExchangeWebServiceClient với địa chỉ và thông tin xác thực.
- Xóa một danh bạ bằng ID của nó.
Đoạn mã dưới đây cho bạn thấy cách xóa danh bạ từ máy chủ Exchange bằng cách sử dụng Exchange Web Service.
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
String strContactToDelete = "John Teddy";
Contact[] contacts = client.getContacts(client.getMailboxInfo().getContactsUri());
for (Contact contact : contacts) {
if (contact.getDisplayName().equals(strContactToDelete))
client.deleteItem(contact.getId().getEWSId(), DeletionOptions.getDeletePermanently());
}
client.dispose();