Agregar o eliminar contactos de Microsoft Exchange Server en C#

Microsoft Exchange Server es una plataforma popular que brinda varios servicios de colaboración como correo electrónico, calendarios, contactos, etc. En la publicación anterior, le mostramos cómo leer correos electrónicos de Microsoft Exchange Server. Sin embargo, es posible que también deba trabajar con los contactos en Exchange Server mediante programación. En este artículo, aprenderá a agregar, eliminar o actualizar contactos en Microsoft Exchange Server en C# .NET.

C# .NET API para acceder a contactos en MS Exchange Server

Para trabajar con contactos en Microsoft Exchange Server, usaremos Aspose.Email for .NET. Es una API muy conocida para trabajar con diferentes clientes de correo electrónico desde aplicaciones .NET. Puede descargar la DLL de la API o instalarla desde NuGet con el siguiente comando.

PM> Install-Package Aspose.Email

Agregar contactos a MS Exchange Server en C#

Los siguientes son los pasos para agregar contactos a Microsoft Exchange Server en C#.

  • Primero, cree e inicialice el objeto NetworkCredential con nombre de usuario, contraseña y dominio.
  • Luego, inicialice IEWSClient con el URI del buzón y el objeto NetworkCredential.
  • Cree un objeto de la clase Contacto y establezca sus propiedades, como nombre, trabajo, sexo, teléfono, personas asociadas, etc.
  • Finalmente, llame a EWSClient.CreateContact(Contact) para agregar un contacto.

El siguiente ejemplo de código muestra cómo agregar un contacto a Microsoft Exchange Server en 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);

// Crear nuevo contacto
Contact contact = new Contact();

// Establecer información general
contact.Gender = Gender.Male;
contact.DisplayName = "Frank Lin";
contact.CompanyName = "ABC Co.";
contact.JobTitle = "Executive Manager";

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

// Personas asociadas del contacto
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 });

// URL
contact.Urls.Add(new Url { Href = "www.blog.com", Category = UrlCategory.Blog });
contact.Urls.Add(new Url { Href = "www.homepage.com", Category = UrlCategory.HomePage });
            
// Establecer la dirección de correo electrónico del contacto
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);
}

Eliminar contactos de MS Exchange Server en C#

También puede eliminar un contacto de MS Exchange Server. Para filtrar los contactos, puede usar el nombre, el correo electrónico o cualquier otra propiedad adecuada. Los siguientes son los pasos para eliminar un contacto de Microsoft Exchange Server en C#.

El siguiente ejemplo de código muestra cómo eliminar contactos de Microsoft Exchange Server en C#.

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

string strContactToDelete = "John Teddy";

// Obtener contactos
Contact[] contacts = client.GetContacts(client.MailboxInfo.ContactsUri);

// Filtrar contactos
foreach (Contact contact in contacts)
{
    // Borrar contacto
    if (contact.DisplayName.Equals(strContactToDelete))
        client.DeleteItem(contact.Id.EWSId, DeletionOptions.DeletePermanently);

}
client.Dispose();

Actualizar un contacto en Exchange Server en C#

También puede actualizar un contacto en MS Exchange Server utilizando Aspose.Email for .NET. Los siguientes son los pasos para realizar esta operación.

El siguiente ejemplo de código muestra cómo actualizar un contacto en MS Exchange Server en 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);

// Enumere todos los contactos y recorra todos los contactos
Contact[] contacts = client.GetContacts(client.MailboxInfo.ContactsUri);

// Seleccione el contacto deseado
Contact contact = contacts[0];
Console.WriteLine("Name: " + contact.DisplayName);
contact.DisplayName = "David Ch";

// Actualizar contacto
client.UpdateContact(contact);

Obtenga una licencia de API gratuita

Puede obtener una licencia temporal gratuita para usar Aspose.Email for .NET sin limitaciones de evaluación.

Conclusión

En este artículo, ha aprendido a trabajar con contactos en Microsoft Exchange Server en C#. Hemos demostrado cómo agregar, eliminar y actualizar contactos de MS Exchange Server mediante programación en C#. Además, puede explorar la documentación para leer más sobre Aspose.Email for .NET. Además, puede hacer sus preguntas a través de nuestro foro.

Ver también