Aggiungi o elimina contatti da Microsoft Exchange Server in C#

Microsoft Exchange Server è una piattaforma popolare che fornisce vari servizi di collaborazione come e-mail, calendari, contatti, ecc. Nel post precedente, ti abbiamo mostrato come leggere le e-mail da Microsoft Exchange Server. Tuttavia, potrebbe anche essere necessario lavorare con i contatti su Exchange Server a livello di codice. In questo articolo imparerai come aggiungere, eliminare o aggiornare i contatti su Microsoft Exchange Server in C# .NET.

API C# .NET per accedere ai contatti su MS Exchange Server

Per lavorare con i contatti su Microsoft Exchange Server, utilizzeremo Aspose.Email for .NET. È un’API ben nota per funzionare con diversi client di posta elettronica dall’interno delle applicazioni .NET. Puoi scaricare la DLL dell’API o installarla da NuGet usando il comando seguente.

PM> Install-Package Aspose.Email

Aggiungi contatti a MS Exchange Server in C#

Di seguito sono riportati i passaggi per aggiungere contatti a Microsoft Exchange Server in C#.

  • Innanzitutto, crea e inizializza l’oggetto NetworkCredential con nome utente, password e dominio.
  • Quindi, inizializza IEWSClient con l’URI della cassetta postale e l’oggetto NetworkCredential.
  • Crea un oggetto della classe Contact e imposta le sue proprietà come nome, lavoro, sesso, telefono, persone associate, ecc.
  • Infine, chiama EWSClient.CreateContact(Contact) per aggiungere il contatto.

Nell’esempio di codice seguente viene illustrato come aggiungere un contatto a Microsoft Exchange Server in 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);

// Crea nuovo contatto
Contact contact = new Contact();

// Imposta informazioni generali
contact.Gender = Gender.Male;
contact.DisplayName = "Frank Lin";
contact.CompanyName = "ABC Co.";
contact.JobTitle = "Executive Manager";

// Aggiungi numeri di telefono
contact.PhoneNumbers.Add(new PhoneNumber { Number = "123456789", Category = PhoneNumberCategory.Home });

// Persone associate del contatto
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 });
            
// Imposta l'indirizzo email del contatto
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);
}

Elimina i contatti da MS Exchange Server in C#

È inoltre possibile eliminare un contatto da MS Exchange Server. Per filtrare i contatti, puoi utilizzare il nome, l’e-mail o qualsiasi altra proprietà adatta. Di seguito sono riportati i passaggi per eliminare un contatto da Microsoft Exchange Server in C#.

Nell’esempio di codice seguente viene illustrato come eliminare i contatti da Microsoft Exchange Server in C#.

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

string strContactToDelete = "John Teddy";

// Ottieni contatti
Contact[] contacts = client.GetContacts(client.MailboxInfo.ContactsUri);

// Filtra i contatti
foreach (Contact contact in contacts)
{
    // Elimina contatto
    if (contact.DisplayName.Equals(strContactToDelete))
        client.DeleteItem(contact.Id.EWSId, DeletionOptions.DeletePermanently);

}
client.Dispose();

Aggiorna un contatto su Exchange Server in C#

È inoltre possibile aggiornare un contatto su MS Exchange Server utilizzando Aspose.Email per .NET. Di seguito sono riportati i passaggi per eseguire questa operazione.

Nell’esempio di codice seguente viene illustrato come aggiornare un contatto in MS Exchange Server in 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);

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

// Elenca tutti i contatti e Scorri tutti i contatti
Contact[] contacts = client.GetContacts(client.MailboxInfo.ContactsUri);

// Seleziona il contatto desiderato
Contact contact = contacts[0];
Console.WriteLine("Name: " + contact.DisplayName);
contact.DisplayName = "David Ch";

// Aggiorna contatto
client.UpdateContact(contact);

Ottieni una licenza API gratuita

Puoi ottenere una licenza temporanea gratuita per utilizzare Aspose.Email per .NET senza limitazioni di valutazione.

Conclusione

In questo articolo hai imparato a lavorare con i contatti su Microsoft Exchange Server in C#. Abbiamo dimostrato come aggiungere, rimuovere e aggiornare i contatti da MS Exchange Server a livello di codice in C#. Inoltre, puoi esplorare la documentazione per saperne di più su Aspose.Email per .NET. Inoltre, puoi porre le tue domande tramite il nostro forum.

Guarda anche