Trabalhando com Contatos no Exchange Server
Obtendo Contatos com EWS
Aspose.Email fornece a classe EWSClient para se conectar ao Microsoft Exchange Server usando os Serviços Web do Exchange. Os trechos de código a seguir usam os Serviços Web do Exchange para ler todos os contatos. O seguinte trecho de código mostra como obter Contatos com EWS.
// Criar instância da classe IEWSClient fornecendo credenciais IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain"); // Listar todos os contatos Contact[] contacts = client.getContacts(client.getMailboxInfo().getContactsUri()); for (Contact contact : contacts) { MapiContact mapiContact = Contact.to_MapiContact(contact); // Mostrar nome e endereço de email System.out.println("Nome: " + mapiContact.getNameInfo().getDisplayName() + "+ Endereço de Email: " + mapiContact.getElectronicAddresses().getEmail1()); } Resolver Contatos usando o Nome do Contato
O seguinte trecho de código mostra como usar para obter contatos com EWS
// Criar instância da classe IEWSClient fornecendo credenciais IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain"); // Listar todos os contatos Contact[] contacts = client.resolveContacts("Changed Name", ExchangeListContactsOptions.FetchPhoto); for (Contact c : contacts) { MapiContact contact = Contact.to_MapiContact(c); // Mostrar nome e endereço de email System.out.println("Nome: " + contact.getNameInfo().getDisplayName() + "+ Endereço de Email: " + contact.getElectronicAddresses().getEmail1()); } Determinando o 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 o Id
Um contato específico pode ser recuperado do servidor usando seu id de contato, como mostrado no seguinte exemplo de código.
Contact fetchedContact = client.getContact(id); Adicionando Contatos
A classe EWSClient pode utilizar o método createContact() para adicionar informações de Contato a um Exchange Server. O método createContact() aceita um objeto Contact como parâmetro de entrada.
Para adicionar contatos a um Exchange Server:
- Inicializar o EWSClient com o endereço e credenciais.
- Inicializar o objeto Contact com as propriedades desejadas.
- Chamar o método CreateContact para adicionar o contato ao Exchange Server.
Aspose.Email fornece a classe EWSClient para se conectar ao Microsoft Exchange Server usando os Serviços Web do Exchange. Os trechos de código mostram como usar os Serviços Web do Exchange para adicionar contatos a um Exchange Server.
// Definir mailboxURI, nome de usuário, senha, informações do 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 ao 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 Email do contato contact.getEmailAddresses().add(tmp6); try { client.createContact(contact); } catch (java.lang.RuntimeException ex) { System.out.println(ex.getMessage()); } Atualizando Contatos
As informações de contato podem ser atualizadas usando o Microsoft Outlook. O Aspose.Email também pode atualizar informações de contato no Exchange Server usando os Serviços Web do Exchange (EWS). O método updateContact() da classe IEWSClient pode atualizar as informações de contato no Exchange Server.
IEWSClient client = EWSClient.getEWSClient(mailboxUri, credentials); // Listar todos os contatos e percorrer todos os contatos Contact[] contacts = client.getContacts(client.getMailboxInfo().getContactsUri()); Contact contact = contacts[0]; System.out.println("Nome: " + contact.getDisplayName()); contact.setDisplayName("David Ch"); client.updateContact(contact); Deletando Contatos
A classe EWSClient fornece o método deleteItem para acessar e deletar contatos da pasta de contatos de um Exchange Server. Este método aceita o ID do contato como parâmetro de entrada.
Para deletar contatos de um Exchange Server:
- Inicializar o ExchangeWebServiceClient com endereço e credenciais.
- Deletar um contato usando seu ID.
Os seguintes trechos de código mostram como deletar contatos de um servidor Exchange usando o serviço web do 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();