Arbeiten mit Kontakten auf dem Exchange‑Server

Abrufen von Kontakten mit EWS

Aspose.Email provides the EWSClient Klasse, um eine Verbindung zu Microsoft Exchange Server über Exchange Web Services herzustellen. Die folgenden Code‑Snippets verwenden Exchange Web Services, um alle Kontakte zu lesen. Das folgende Code‑Snippet zeigt, wie man Kontakte mit EWS abruft.

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

Kontakte anhand des Namens auflösen

Das folgende Code‑Snippet zeigt, wie man Kontakte mit EWS abruft

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

Bestimmung des Notizformat für Kontakte

Der NotesFormat gibt den Textformattyp der Notizen von Kontakten an, definiert durch den TextFormat‑Enumerator.

Kontakt mit ID abrufen

Ein bestimmter Kontakt kann vom Server mithilfe seiner Kontakt‑ID abgerufen werden, wie im folgenden Code‑Beispiel gezeigt.

Contact fetchedContact = client.getContact(id);

Kontakte hinzufügen

Die EWSClient Klasse createContact() Methode kann verwendet werden, um Kontaktinformationen zu einem Exchange‑Server hinzuzufügen. Die createContact() Methode nimmt ein Kontakt Objekt als Eingabeparameter.

So fügen Sie Kontakte zu einem Exchange‑Server hinzu:

  1. Initialisieren Sie den EWSClient mit Adresse und Anmeldeinformationen.
  2. Initialisieren Sie das Contact‑Objekt mit den gewünschten Eigenschaften.
  3. Rufen Sie die Methode CreateContact auf, um den Kontakt zum Exchange‑Server hinzuzufügen.

Aspose.Email provides the EWSClient Klasse, um eine Verbindung zu Microsoft Exchange Server über Exchange Web Services herzustellen. Das Code‑Snippet zeigt, wie man Exchange Web Services verwendet, um Kontakte zu einem Exchange‑Server hinzuzufügen.

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

Kontakte aktualisieren

Kontaktinformationen können mithilfe von Microsoft Outlook aktualisiert werden. Aspose.Email kann ebenfalls Kontaktinformationen auf einem Exchange‑Server über den Exchange Web Service (EWS) aktualisieren. Das IEWSClient’s updateContact() Methode kann Kontaktinformationen auf einem Exchange‑Server aktualisieren.

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

Kontakte löschen

Die EWSClient class provides the deleteItem um auf Kontakte im Kontakte‑Ordner eines Exchange‑Servers zuzugreifen und sie zu löschen. Diese Methode nimmt die Kontakt‑ID als Eingabeparameter.

So löschen Sie Kontakte von einem Exchange‑Server:

  1. Initialisieren Sie den ExchangeWebServiceClient mit Adresse und Anmeldeinformationen.
  2. Löschen Sie einen Kontakt mittels seiner ID.

Die folgenden Code‑Snippets zeigen, wie man Kontakte von einem Exchange‑Server mithilfe des Exchange‑Web‑Service löscht.

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