Werken met contactpersonen op Exchange Server

Contacten ophalen met EWS

Aspose.Email biedt de EWSClient klasse om verbinding te maken met Microsoft Exchange Server via Exchange Web Services. De volgende codefragmenten gebruiken Exchange Web Services om alle contactpersonen te lezen. Het volgende codefragment toont hoe je contactpersonen ophaalt met 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());
}

Contacten vinden op basis van contactnaam

Het volgende codefragment laat zien hoe je contactpersonen opvraagt met 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());
}

Contactnotitiesformaat bepalen

Het NotesFormat specificeert het notitie-tekstformaattype van contactpersonen, gedefinieerd door de TextFormat-enumeratie.

Contact ophalen met ID

Een specifiek contact kan worden opgehaald van de server met zijn contact‑ID zoals weergegeven in het volgende codevoorbeeld.

Contact fetchedContact = client.getContact(id);

Contacten toevoegen

De EWSClient klasse createContact() methode kan worden gebruikt om contactinformatie toe te voegen aan een Exchange Server. De createContact() methode neemt een Contact object als invoerparameter.

Om contactpersonen toe te voegen aan een Exchange Server:

  1. Initialiseer de EWSClient met adres en inloggegevens.
  2. Initialiseer het Contact-object met de gewenste eigenschappen.
  3. Roep de CreateContact-methode aan om het contact toe te voegen aan de Exchange Server.

Aspose.Email biedt de EWSClient klasse om verbinding te maken met Microsoft Exchange Server via Exchange Web Services. Het codefragment laat zien hoe je Exchange Web Services kunt gebruiken om contactpersonen toe te voegen aan een 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());
}

Contacten bijwerken

Contactinformatie kan worden bijgewerkt met Microsoft Outlook. Aspose.Email kan ook contactinformatie bijwerken op Exchange Server met behulp van de Exchange Web Service (EWS). De IEWSClient’s updateContact() methode kan contactinformatie bijwerken op 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);

Contacten verwijderen

De EWSClient class biedt de deleteItem om toegang te krijgen tot en contactpersonen te verwijderen uit de contactenmap van een Exchange Server. Deze methode neemt de contact-ID als invoerparameter.

Om contactpersonen van een Exchange Server te verwijderen:

  1. Initialiseer de ExchangeWebServiceClient met adres en inloggegevens.
  2. Verwijder een contact met behulp van zijn ID.

De volgende codefragmenten laten zien hoe je contactpersonen verwijdert van een Exchange-server met behulp van 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();