Ajouter ou supprimer des contacts de Microsoft Exchange Server en C#

Microsoft Exchange Server est une plate-forme populaire qui fournit divers services de collaboration tels que les e-mails, les calendriers, les contacts, etc. Dans le post précédent, nous vous avons montré comment lire les e-mails de Microsoft Exchange Server. Toutefois, vous devrez peut-être également utiliser les contacts sur le serveur Exchange par programmation. Dans cet article, vous apprendrez à ajouter, supprimer ou mettre à jour des contacts sur Microsoft Exchange Server en C# .NET.

API C# .NET pour accéder aux contacts sur MS Exchange Server

Pour travailler avec des contacts sur Microsoft Exchange Server, nous utiliserons Aspose.Email for .NET. Il s’agit d’une API bien connue pour travailler avec différents clients de messagerie à partir d’applications .NET. Vous pouvez soit télécharger la DLL de l’API ou l’installer à partir de NuGet à l’aide de la commande suivante.

PM> Install-Package Aspose.Email

Ajouter des contacts à MS Exchange Server en C#

Voici les étapes pour ajouter des contacts à Microsoft Exchange Server en C#.

  • Tout d’abord, créez et initialisez l’objet NetworkCredential avec le nom d’utilisateur, le mot de passe et le domaine.
  • Ensuite, initialisez IEWSClient avec l’URI de la boîte aux lettres et l’objet NetworkCredential.
  • Créez un objet de classe Contact et définissez ses propriétés telles que le nom, le travail, le sexe, le téléphone, les personnes associées, etc.
  • Enfin, appelez EWSClient.CreateContact(Contact) pour ajouter un contact.

L’exemple de code suivant montre comment ajouter un contact à 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);

// Créer un nouveau contact
Contact contact = new Contact();

// Définir les informations générales
contact.Gender = Gender.Male;
contact.DisplayName = "Frank Lin";
contact.CompanyName = "ABC Co.";
contact.JobTitle = "Executive Manager";

// Ajouter des numéros de téléphone
contact.PhoneNumbers.Add(new PhoneNumber { Number = "123456789", Category = PhoneNumberCategory.Home });

// Personnes associées du contact
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 });
            
// Définir l'adresse e-mail du contact
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);
}

Supprimer les contacts de MS Exchange Server en C#

Vous pouvez également supprimer un contact du serveur MS Exchange. Pour filtrer les contacts, vous pouvez utiliser le nom, l’e-mail ou toute autre propriété appropriée. Voici les étapes pour supprimer un contact de Microsoft Exchange Server en C#.

L’exemple de code suivant montre comment supprimer des contacts de Microsoft Exchange Server en C#.

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

string strContactToDelete = "John Teddy";

// Obtenir des contacts
Contact[] contacts = client.GetContacts(client.MailboxInfo.ContactsUri);

// Filtrer les contacts
foreach (Contact contact in contacts)
{
    // Supprimer le contact
    if (contact.DisplayName.Equals(strContactToDelete))
        client.DeleteItem(contact.Id.EWSId, DeletionOptions.DeletePermanently);

}
client.Dispose();

Mettre à jour un contact sur Exchange Server en C#

Vous pouvez également mettre à jour un contact sur MS Exchange Server en utilisant Aspose.Email for .NET. Voici les étapes pour effectuer cette opération.

L’exemple de code suivant montre comment mettre à jour un contact sur 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);

// Initialiser EWSClient
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);

// Répertorier tous les contacts et parcourir tous les contacts
Contact[] contacts = client.GetContacts(client.MailboxInfo.ContactsUri);

// Sélectionnez le contact souhaité
Contact contact = contacts[0];
Console.WriteLine("Name: " + contact.DisplayName);
contact.DisplayName = "David Ch";

// Mettre à jour le contact
client.UpdateContact(contact);

Obtenez une licence API gratuite

Vous pouvez obtenir une licence temporaire gratuite pour utiliser Aspose.Email for .NET sans limitations d’évaluation.

Conclusion

Dans cet article, vous avez appris à utiliser des contacts sur Microsoft Exchange Server en C#. Nous avons montré comment ajouter, supprimer et mettre à jour des contacts à partir de MS Exchange Server par programmation en C#. En outre, vous pouvez explorer la documentation pour en savoir plus sur Aspose.Email for .NET. Vous pouvez également poser vos questions via notre forum.

Voir également