Práce s kontakty na serveru Exchange

Získávání kontaktů pomocí EWS

Aspose.Email poskytuje EWSClient třída pro připojení k Microsoft Exchange Server pomocí Exchange Web Services. Následující úryvky kódu používají Exchange Web Services k načtení všech kontaktů. Následující úryvek kódu ukazuje, jak získat kontakty 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.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());
}

Vyhledání kontaktů pomocí jména kontaktu

Následující úryvek kódu ukazuje, jak získat kontakty 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());
}

Určení formátu poznámek kontaktu

NotesFormat určuje typ formátu textu poznámek kontaktů definovaný enumerátorem TextFormat.

Načtení kontaktu pomocí ID

Konkrétní kontakt lze získat ze serveru pomocí jeho ID kontaktu, jak je ukázáno v následujícím ukázkovém kódu.

Contact fetchedContact = client.getContact(id);

Přidávání kontaktů

The EWSClient třída createContact() metoda může být použita k přidání informací o kontaktu na server Exchange. createContact() metoda přijímá Contact objekt jako vstupní parametr.

Pro přidání kontaktů na server Exchange:

  1. Inicializujte EWSClient s adresou a přihlašovacími údaji.
  2. Inicializujte objekt Contact s požadovanými vlastnostmi.
  3. Zavolejte metodu CreateContact pro přidání kontaktu na server Exchange.

Aspose.Email poskytuje EWSClient třída pro připojení k Microsoft Exchange Server pomocí Exchange Web Services. Úryvky kódu ukazují, jak použít Exchange Web Services k přidání kontaktů na server 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());
}

Aktualizace kontaktů

Informace o kontaktu mohou být aktualizovány pomocí Microsoft Outlook. Aspose.Email může také aktualizovat informace o kontaktu na serveru Exchange pomocí Exchange Web Service (EWS). IEWSClient’s updateContact() metoda může aktualizovat informace o kontaktu na serveru 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);

Mazání kontaktů

The EWSClient třída poskytuje deleteItem pro přístup a smazání kontaktů ze složky kontaktů na serveru Exchange. Tato metoda přijímá ID kontaktu jako vstupní parametr.

Pro smazání kontaktů ze serveru Exchange:

  1. Inicializujte ExchangeWebServiceClient s adresou a přihlašovacími údaji.
  2. Smažte kontakt pomocí jeho ID.

Následující úryvky kódu ukazují, jak mazat kontakty ze serveru Exchange pomocí 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();