Trabajar con contactos en Exchange Server

Cómo obtener contactos con EWS

Aspose.Email proporciona la EWSClient clase para conectarse a Microsoft Exchange Server mediante los servicios web de Exchange. Los fragmentos de código que aparecen a continuación utilizan los servicios web de Exchange para leer todos los contactos. El siguiente fragmento de código muestra cómo obtener contactos con 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());
}

Resolver contactos usando el nombre del contacto

El siguiente fragmento de código muestra cómo usar get contacts con 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());
}

Determinación del formato de las notas de contacto

El NotesFormat especifica el tipo de formato de texto de las notas de los contactos definido por el enumerador TextFormat.

Obtener un contacto usando el ID

Un contacto concreto se puede recuperar del servidor mediante su identificador de contacto, tal y como se muestra en el siguiente ejemplo de código.

Contact fetchedContact = client.getContact(id);

Agregar contactos

The EWSClient class createContact() el método se puede usar para agregar información de contacto a un servidor Exchange. El createContact() el método toma un Contact objeto como parámetro de entrada.

Para agregar contactos a un servidor Exchange:

  1. Inicialice el EWSClient con la dirección y las credenciales.
  2. Inicialice el objeto Contact con las propiedades deseadas.
  3. Llame al método CreateContact para agregar el contacto al servidor Exchange.

Aspose.Email proporciona la EWSClient clase para conectarse a Microsoft Exchange Server mediante los servicios web de Exchange. Los fragmentos de código muestran cómo usar los servicios web de Exchange para agregar contactos a un servidor de 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());
}

Actualización de contactos

La información de contacto se puede actualizar mediante Microsoft Outlook. Aspose.Email también puede actualizar la información de contacto en Exchange Server mediante el servicio web de Exchange (EWS). El IEWSClient’s updateContact() el método puede actualizar la información de contacto en 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);

Eliminar contactos

The EWSClient la clase proporciona la deleteItem para acceder a los contactos de la carpeta de contactos de un servidor Exchange y eliminarlos. Este método toma el identificador de contacto como parámetro de entrada.

Para eliminar contactos de un servidor Exchange:

  1. Inicialice el ExchangeWebServiceClient con la dirección y las credenciales.
  2. Elimina un contacto con su ID.

Los siguientes fragmentos de código muestran cómo eliminar contactos de un servidor de Exchange mediante el servicio web de Exchange.

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