Adicionar ou excluir contatos do Microsoft Exchange Server em C#

Microsoft Exchange Server é uma plataforma popular que fornece vários serviços de colaboração como e-mail, calendários, contatos, etc. No post anterior, mostramos como ler e-mails do Microsoft Exchange Server. No entanto, você também pode precisar trabalhar com os contatos no Exchange Server programaticamente. Neste artigo, você aprenderá como adicionar, excluir ou atualizar contatos no Microsoft Exchange Server em C# .NET.

API C# .NET para acessar contatos no MS Exchange Server

Para trabalhar com contatos no Microsoft Exchange Server, usaremos Aspose.Email for .NET. É uma API bem conhecida para trabalhar com diferentes clientes de e-mail a partir de aplicativos .NET. Você pode baixar a DLL da API ou instalá-la do NuGet usando o comando a seguir.

PM> Install-Package Aspose.Email

Adicionar contatos ao MS Exchange Server em C#

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

  • 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 EWSClient.CreateContact(Contact) para adicionar o contato.

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

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.Gender = Gender.Male;
contact.DisplayName = "Frank Lin";
contact.CompanyName = "ABC Co.";
contact.JobTitle = "Executive Manager";

// Adicionar números de telefone
contact.PhoneNumbers.Add(new PhoneNumber { Number = "123456789", Category = PhoneNumberCategory.Home });

// Pessoas associadas do contato
contact.AssociatedPersons.Add(new AssociatedPerson { Name = "Catherine", Category = AssociatedPersonCategory.Spouse });
contact.AssociatedPersons.Add(new AssociatedPerson { Name = "Bob", Category = AssociatedPersonCategory.Child });
contact.AssociatedPersons.Add(new AssociatedPerson { Name = "Merry", Category = AssociatedPersonCategory.Sister });

// URLs
contact.Urls.Add(new Url { Href = "www.blog.com", Category = UrlCategory.Blog });
contact.Urls.Add(new Url { Href = "www.homepage.com", Category = UrlCategory.HomePage });
            
// Definir o endereço de e-mail do contato
contact.EmailAddresses.Add(new EmailAddress { Address = "Frank.Lin@Abc.com", DisplayName = "Frank Lin", Category = EmailAddressCategory.Email1 });

try
{
    client.CreateContact(contact);
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}

Excluir contatos do MS Exchange Server em C#

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 C#.

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

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

string strContactToDelete = "John Teddy";

// Obter contatos
Contact[] contacts = client.GetContacts(client.MailboxInfo.ContactsUri);

// Filtrar contatos
foreach (Contact contact in contacts)
{
    // Excluir contato
    if (contact.DisplayName.Equals(strContactToDelete))
        client.DeleteItem(contact.Id.EWSId, DeletionOptions.DeletePermanently);

}
client.Dispose();

Atualizar um contato no Exchange Server em C#

Você também pode atualizar um contato no MS Exchange Server usando Aspose.Email para .NET. 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 C#.

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 EWSClient
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);

// Liste todos os contatos e faça um loop em todos os contatos
Contact[] contacts = client.GetContacts(client.MailboxInfo.ContactsUri);

// Selecione o contato desejado
Contact contact = contacts[0];
Console.WriteLine("Name: " + contact.DisplayName);
contact.DisplayName = "David Ch";

// Atualizar contato
client.UpdateContact(contact);

Obtenha uma licença de API gratuita

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

Conclusão

Neste artigo, você aprendeu como trabalhar com contatos no Microsoft Exchange Server em C#. Demonstramos como adicionar, remover e atualizar contatos do MS Exchange Server programaticamente em C#. Além disso, você pode explorar a documentação para ler mais sobre o Aspose.Email para .NET. Além disso, você pode fazer suas perguntas através do nosso fórum.

Veja também