Робота з контактами на Exchange Server

Отримання контактів за допомогою EWS

Aspose.Email надає EWSClient клас для підключення до Microsoft Exchange Server за допомогою Exchange Web Services. Наведені нижче фрагменти коду використовують Exchange Web Services для читання усіх контактів. У наведеному фрагменті коду показано, як отримати контакти за допомогою 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());
}

Визначення контактів за ім’ям контакту

У наведеному фрагменті коду показано, як отримати контакти за допомогою 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());
}

Визначення формату нотаток контакту

NotesFormat вказує тип формату тексту нотаток контактів, визначений перелічувачем TextFormat.

Отримати контакт за ідентифікатором

Конкретний контакт можна отримати з сервера за його ідентифікатором, як показано у наведеному прикладі коду.

Contact fetchedContact = client.getContact(id);

Додавання контактів

The EWSClient клас createContact() метод можна використовувати для додавання інформації про контакт до Exchange Server. createContact() метод приймає Contact об’єкт як вхідний параметр.

Щоб додати контакти до Exchange Server:

  1. Ініціалізуйте EWSClient з адресою та обліковими даними.
  2. Ініціалізуйте об’єкт Contact з потрібними властивостями.
  3. Викличте метод CreateContact, щоб додати контакт до Exchange Server.

Aspose.Email надає EWSClient клас для підключення до Microsoft Exchange Server за допомогою Exchange Web Services. У фрагменті коду показано, як використовувати Exchange Web Services для додавання контактів до 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());
}

Оновлення контактів

Інформацію про контакт можна оновити за допомогою Microsoft Outlook. Aspose.Email також може оновлювати інформацію про контакти на Exchange Server за допомогою Exchange Web Service (EWS). IEWSClient’s updateContact() метод може оновлювати інформацію про контакти на 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);

Видалення контактів

The EWSClient class надає deleteItem для доступу та видалення контактів з папки contacts на Exchange Server. Цей метод приймає ідентифікатор контакту як вхідний параметр.

Щоб видалити контакти з Exchange Server:

  1. Ініціалізуйте ExchangeWebServiceClient з адресою та обліковими даними.
  2. Видалити контакт за його ідентифікатором.

У наведених фрагментах коду показано, як видаляти контакти з сервера 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();