Работа с контактами на Exchange Server
Получение контактов с EWS
Aspose.Email предоставляет класс EWSClient для подключения к Microsoft Exchange Server с использованием Exchange Web Services. Приведенные ниже фрагменты кода используют Exchange Web Services для чтения всех контактов. Следующий фрагмент кода показывает, как получить контакты с EWS.
// Создать экземпляр класса IEWSClient, указав учетные данные
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// Список всех контактов
Contact[] contacts = client.getContacts(client.getMailboxInfo().getContactsUri());
for (Contact contact : contacts) {
MapiContact mapiContact = Contact.to_MapiContact(contact);
// Отобразить имя и адрес электронной почты
System.out.println("Name: " + mapiContact.getNameInfo().getDisplayName() + "+ Email Address: " + mapiContact.getElectronicAddresses().getEmail1());
}
Разрешение контактов по имени контакта
Следующий фрагмент кода показывает, как получить контакты с EWS
// Создать экземпляр класса IEWSClient, указав учетные данные
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// Список всех контактов
Contact[] contacts = client.resolveContacts("Changed Name", ExchangeListContactsOptions.FetchPhoto);
for (Contact c : contacts) {
MapiContact contact = Contact.to_MapiContact(c);
// Отобразить имя и адрес электронной почты
System.out.println("Name: " + contact.getNameInfo().getDisplayName() + "+ Email Address: " + contact.getElectronicAddresses().getEmail1());
}
Определение формата заметок контактов
NotesFormat указывает тип формата текста заметок контактов, определяемый перечислением TextFormat.
Получение контакта по Id
Определенный контакт можно получить с сервера, используя его идентификатор контакта, как показано в следующем примере кода.
Contact fetchedContact = client.getContact(id);
Добавление контактов
Класс EWSClient метод createContact() может быть использован для добавления информации о контакте на Exchange Server. Метод createContact() принимает объект Contact в качестве входного параметра.
Чтобы добавить контакты на Exchange Server:
- Инициализируйте EWSClient с адресом и учетными данными.
- Инициализируйте объект Contact с необходимыми свойствами.
- Вызовите метод CreateContact, чтобы добавить контакт на Exchange Server.
Aspose.Email предоставляет класс EWSClient для подключения к Microsoft Exchange Server с использованием Exchange Web Services. Приведенные ниже фрагменты кода показывают, как использовать Exchange Web Services для добавления контактов на Exchange Server.
// Установить mailboxURI, Имя пользователя, пароль, информацию о домене
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);
// Создать новый контакт
Contact contact = new Contact();
// Установить общую информацию
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());
// Добавить номера телефонов
contact.getPhoneNumbers().add(tmp0);
AssociatedPerson tmp1 = new AssociatedPerson();
tmp1.setName("Catherine");
tmp1.setCategory(AssociatedPersonCategory.getSpouse());
// Сопутствующие лица контакта
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());
// Установить адрес электронной почты контакта
contact.getEmailAddresses().add(tmp6);
try {
client.createContact(contact);
} catch (java.lang.RuntimeException ex) {
System.out.println(ex.getMessage());
}
Обновление контактов
Информацию о контактах можно обновить с помощью Microsoft Outlook. Aspose.Email также может обновлять информацию о контактах на Exchange Server с использованием Exchange Web Service (EWS). Метод updateContact() класса IEWSClient может обновить информацию о контактах на Exchange Server.
IEWSClient client = EWSClient.getEWSClient(mailboxUri, credentials);
// Список всех контактов и перебор всех контактов
Contact[] contacts = client.getContacts(client.getMailboxInfo().getContactsUri());
Contact contact = contacts[0];
System.out.println("Name: " + contact.getDisplayName());
contact.setDisplayName("David Ch");
client.updateContact(contact);
Удаление контактов
Класс EWSClient предоставляет метод deleteItem для доступа и удаления контактов из папки контактов Exchange Server. Этот метод принимает идентификатор контакта в качестве входного параметра.
Чтобы удалить контакты с Exchange Server:
- Инициализируйте ExchangeWebServiceClient с адресом и учетными данными.
- Удалите контакт, используя его идентификатор.
Следующий фрагмент кода показывает, как удалять контакты с сервера Exchange, используя 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();