Praca z kontaktami na serwerze Exchange

Pobieranie kontaktów przy pomocy EWS

Aspose.Email udostępnia EWSClient klasa do łączenia się z Microsoft Exchange Server przy użyciu Exchange Web Services. Poniższe fragmenty kodu używają Exchange Web Services do odczytu wszystkich kontaktów. Poniższy fragment kodu pokazuje, jak pobrać kontakty przy pomocy 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());
}

Rozwiązywanie kontaktów przy użyciu nazwy kontaktu

Poniższy fragment kodu pokazuje, jak używać pobierania kontaktów za pomocą 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());
}

Określanie formatu notatek kontaktów

NotesFormat określa typ formatu tekstu notatek kontaktów zdefiniowany przez wyliczenie TextFormat.

Pobierz kontakt używając Id

Określony kontakt może być pobrany z serwera przy użyciu jego identyfikatora, jak pokazano w poniższym przykładzie kodu.

Contact fetchedContact = client.getContact(id);

Dodawanie kontaktów

Ten EWSClient klasa createContact() metoda może być użyta do dodania informacji kontaktowych do serwera Exchange. createContact() metoda przyjmuje Kontakt obiekt jako parametr wejściowy.

Aby dodać kontakty do serwera Exchange:

  1. Zainicjalizuj EWSClient za pomocą adresu i poświadczeń.
  2. Zainicjalizuj obiekt Contact z żądanymi właściwościami.
  3. Wywołaj metodę CreateContact, aby dodać kontakt do serwera Exchange.

Aspose.Email udostępnia EWSClient klasa do łączenia się z Microsoft Exchange Server przy użyciu Exchange Web Services. Fragmenty kodu pokazują, jak używać Exchange Web Services do dodawania kontaktów do serwera Exchange.

// 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());
}

Aktualizowanie kontaktów

Informacje kontaktowe można aktualizować przy użyciu Microsoft Outlook. Aspose.Email może również aktualizować informacje kontaktowe na serwerze Exchange przy użyciu Exchange Web Service (EWS). IEWSClient’s updateContact() metoda może aktualizować informacje kontaktowe na serwerze Exchange.

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);

Usuwanie kontaktów

Ten EWSClient klasa udostępnia deleteItem do uzyskania dostępu i usunięcia kontaktów z folderu kontaktów serwera Exchange. Ta metoda przyjmuje identyfikator kontaktu jako parametr wejściowy.

Aby usunąć kontakty z serwera Exchange:

  1. Zainicjalizuj ExchangeWebServiceClient za pomocą adresu i poświadczeń.
  2. Usuń kontakt przy użyciu jego identyfikatora.

Poniższe fragmenty kodu pokazują, jak usuwać kontakty z serwera Exchange przy użyciu usługi 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();