Adicionar ou excluir contatos do Microsoft Exchange Server em Java

Microsoft Exchange Server é um servidor de e-mail e calendário que fornece diferentes serviços de colaboração como e-mail, calendários, gerenciamento de contatos, etc. Em um dos meus posts, mostrei como acessar e ler e-mails do Microsoft Exchange Server programaticamente em Java. No entanto, muitas vezes precisamos da lista de contatos que temos no MS Exchange Server. Portanto, neste artigo, você aprenderá como adicionar, excluir ou atualizar contatos no Microsoft Exchange Server em Java.

API Java para acessar contatos no MS Exchange Server

Aspose.Email for Java é uma API popular para implementar aplicativos cliente de e-mail em Java. Além disso, permite trabalhar com o MS Exchange Server e manipular os contatos, e-mails e itens de conversa. Usaremos essa API para adicionar, atualizar e excluir contatos no Exchange Server. Você pode baixar o JAR da API ou instalá-lo usando as seguintes configurações do Maven.

Repositório:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>

Dependência:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-email</artifactId>
    <version>22.2</version>
    <classifier>jdk16</classifier>
</dependency>

Adicionar contatos ao MS Exchange Server em Java

A seguir estão as etapas para adicionar contatos ao Microsoft Exchange Server em Java.

  • Primeiro, crie e inicialize o objeto NetworkCredential com nome de usuário, senha e domínio.
  • Em seguida, inicialize IEWSClient com o URI da caixa de correio e o objeto NetworkCredential.
  • Crie um objeto da classe Contact e defina suas propriedades como nome, trabalho, sexo, telefone, pessoas associadas, etc.
  • Por fim, chame o método EWSClient.createContact(Contact) para adicionar o contato.

O exemplo de código a seguir mostra como adicionar um contato ao Microsoft Exchange Server em Java.

// Definir URI de caixa de correio, nome de usuário, senha, informações de domínio
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);

// Criar novo contato
Contact contact = new Contact();

// Definir informações gerais
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());

// Adicionar números de telefone
contact.getPhoneNumbers().add(tmp0);
AssociatedPerson tmp1 = new AssociatedPerson();
tmp1.setName("Catherine");
tmp1.setCategory(AssociatedPersonCategory.getSpouse());

// Pessoas associadas do contato
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());

// Definir o endereço de e-mail do contato
contact.getEmailAddresses().add(tmp6);

try {
	// Criar contato
	client.createContact(contact);
} catch (java.lang.RuntimeException ex) {
	System.out.println(ex.getMessage());
}

Excluir contatos do MS Exchange Server em Java

Você também pode excluir um contato do MS Exchange Server. Para filtrar os contatos, você pode usar o nome, email ou qualquer outra propriedade adequada. A seguir estão as etapas para excluir um contato do Microsoft Exchange Server em Java.

O exemplo de código a seguir mostra como excluir contatos do Microsoft Exchange Server em Java.

// Inicializar o cliente EWS
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");

// Nome de contato
String strContactToDelete = "John Teddy";

// Obter contatos
Contact[] contacts = client.getContacts(client.getMailboxInfo().getContactsUri());

// Percorrer os contatos
for (Contact contact : contacts) {
    if (contact.getDisplayName().equals(strContactToDelete))
    	// Excluir contato
        client.deleteItem(contact.getId().getEWSId(), DeletionOptions.getDeletePermanently());
}
client.dispose();

Atualizar um contato no Exchange Server em Java

Aspose.Email para Java também permite que você atualize um contato no MS Exchange Server. A seguir estão as etapas para realizar esta operação.

O exemplo de código a seguir mostra como atualizar um contato no MS Exchange Server em Java.

// Definir URI de caixa de correio, nome de usuário, senha, informações de domínio
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);

// Inicializar o cliente EWS
IEWSClient client = EWSClient.getEWSClient(mailboxUri, credentials);

// Liste todos os contatos e faça um loop em todos os contatos
Contact[] contacts = client.getContacts(client.getMailboxInfo().getContactsUri());
Contact contact = contacts[0];

// Atualizar detalhes de contato
System.out.println("Name: " + contact.getDisplayName());
contact.setDisplayName("David Ch");
client.updateContact(contact);

Obtenha uma licença de API gratuita

Você pode obter uma licença temporária gratuita para usar o Aspose.Email for Java sem limitações de avaliação.

Conclusão

Neste artigo, você aprendeu como trabalhar com contatos no Microsoft Exchange Server em Java. Demonstramos como adicionar, remover e atualizar contatos do MS Exchange Server em Java. Além disso, você pode explorar a documentação para ler mais sobre o Aspose.Email para Java. Além disso, você pode postar suas dúvidas em nosso fórum.

Veja também