Trabalhando com Contatos no Exchange Server

Obtendo Contatos com EWS

Aspose.Email fornece o EWSClient classe para conectar ao Microsoft Exchange Server usando Exchange Web Services. Os trechos de código a seguir usam Exchange Web Services para ler todos os contatos. O trecho de código a seguir mostra como obter Contatos com 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 Contatos usando Nome do Contato

O trecho de código a seguir mostra como usar obter contatos com 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 das Notas do Contato

O NotesFormat especifica o tipo de formato de texto das notas dos contatos definido pelo enumerador TextFormat.

Buscar Contato usando Id

Um contato específico pode ser recuperado do servidor usando seu id de contato, como mostrado no exemplo de código a seguir.

Contact fetchedContact = client.getContact(id);

Adicionando Contatos

O EWSClient classe createContact() método pode ser usado para adicionar informações de Contato a um Exchange Server. O createContact() método recebe um Contato objeto como parâmetro de entrada.

Para adicionar contatos a um Exchange Server:

  1. Inicialize o EWSClient com endereço e credenciais.
  2. Inicialize o objeto Contact com as propriedades desejadas.
  3. Chame o método CreateContact para adicionar o contato ao Exchange Server.

Aspose.Email fornece o EWSClient classe para conectar ao Microsoft Exchange Server usando Exchange Web Services. O trecho de código mostra como usar o Exchange Web Services para adicionar contatos a um 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());
}

Atualizando Contatos

Informações de contato podem ser atualizadas usando Microsoft Outlook. Aspose.Email também pode atualizar informações de contato no Exchange Server usando o Exchange Web Service (EWS). O IEWSClient’s updateContact() método pode atualizar informações de contato no 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);

Excluindo Contatos

O EWSClient classe fornece o deleteItem para acessar e excluir contatos da pasta de contatos de um Exchange Server. Este método recebe o ID do contato como parâmetro de entrada.

Para excluir contatos de um Exchange Server:

  1. Inicialize o ExchangeWebServiceClient com endereço e credenciais.
  2. Excluir um contato usando seu ID.

O trecho de código a seguir mostra como excluir contatos de um servidor Exchange usando o 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();