Trabajando con contactos en Exchange Server

Obteniendo contactos con EWS

Aspose.Email proporciona el EWSClient clase para conectarse a Microsoft Exchange Server usando Exchange Web Services. Los fragmentos de código siguientes usan Exchange Web Services 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());
}

Determinar formato de notas de contacto

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

Obtener contacto usando ID

Se puede recuperar un contacto en particular del servidor usando su ID de contacto como se muestra en el siguiente ejemplo de código.

Contact fetchedContact = client.getContact(id);

Añadiendo contactos

El EWSClient clase createContact() el método puede usarse para añadir información de Contacto a un Exchange Server. El createContact() el método toma un Contacto objeto como parámetro de entrada.

Para agregar contactos a un servidor Exchange:

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

Aspose.Email proporciona el EWSClient clase para conectarse a Microsoft Exchange Server usando Exchange Web Services. El fragmento de código muestra cómo usar Exchange Web Services para agregar contactos a un 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());
}

Actualizando contactos

La información de contacto puede actualizarse usando Microsoft Outlook. Aspose.Email también puede actualizar la información de contacto en Exchange Server usando Exchange Web Service (EWS). El de IEWSClient 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

El EWSClient class proporciona el deleteItem para acceder y eliminar contactos de la carpeta de contactos de un servidor Exchange. Este método toma el ID del contacto como parámetro de entrada.

Para eliminar contactos de un servidor Exchange:

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

Los siguientes fragmentos de código le muestran cómo eliminar contactos de un servidor Exchange usando 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();