Travailler avec les contacts sur le serveur Exchange

Obtention des contacts avec EWS

Aspose.Email fournit le EWSClient classe pour se connecter à Microsoft Exchange Server en utilisant Exchange Web Services. Les fragments de code qui suivent utilisent Exchange Web Services pour lire tous les contacts. Le fragment de code suivant montre comment obtenir les contacts avec 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());
}

Résolution des contacts par nom

Le fragment de code suivant montre comment obtenir des contacts avec 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());
}

Détermination du format des notes de contact

Le NotesFormat spécifie le type de format de texte des notes des contacts, défini par l’énumérateur TextFormat.

Récupérer le contact par ID

Un contact particulier peut être récupéré depuis le serveur en utilisant son identifiant de contact comme le montre l’exemple de code suivant.

Contact fetchedContact = client.getContact(id);

Ajout de contacts

Le EWSClient classe createContact() la méthode peut être utilisée pour ajouter des informations de Contact à un serveur Exchange. Le createContact() la méthode prend un Contact objet en tant que paramètre d’entrée.

Pour ajouter des contacts à un serveur Exchange :

  1. Initialisez l’EWSClient avec l’adresse et les informations d’identification.
  2. Initialisez l’objet Contact avec les propriétés souhaitées.
  3. Appelez la méthode CreateContact pour ajouter le contact au serveur Exchange.

Aspose.Email fournit le EWSClient classe pour se connecter à Microsoft Exchange Server en utilisant Exchange Web Services. Le fragment de code montre comment utiliser Exchange Web Services pour ajouter des contacts à un serveur 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());
}

Mise à jour des contacts

Les informations de contact peuvent être mises à jour avec Microsoft Outlook. Aspose.Email peut également mettre à jour les informations de contact sur le serveur Exchange en utilisant Exchange Web Service (EWS). Le d’IEWSClient updateContact() la méthode peut mettre à jour les informations de contact sur le serveur 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);

Suppression de contacts

Le EWSClient classe fournit le deleteItem pour accéder et supprimer des contacts du dossier contacts d’un serveur Exchange. Cette méthode prend l’identifiant du contact en paramètre d’entrée.

Pour supprimer des contacts d’un serveur Exchange :

  1. Initialisez le ExchangeWebServiceClient avec l’adresse et les informations d’identification.
  2. Supprimer un contact en utilisant son identifiant.

Le fragment de code suivant montre comment supprimer des contacts d’un serveur Exchange en utilisant 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();