domenica 30 marzo 2025

C# esportare i contatti di Microsoft Outlook in un file xml con .Net 9

In questo esempio di codice nel linguaggio di programmazione C#, vedremo come esportare i contatti di Microsoft Outlook in un file XML, con l'ultima versione del .Net 9.

Dopo aver aggiunto al progetto il riferimento COM a Microsoft Outlook 16.0 Object Library ,  si ha la possibilità di utilizzare le classi per gestire i contatti del programma di posta elettronica più conosciuto al mondo.


Aggiungiamo il riferimento allo spazio dei nomi per Microsoft Outlook, qui di seguito si riporta il frammento di codice di tale dichiarazione.


using Microsoft.Office.Interop.Outlook;


Tramite le classi di Outlook, dopo aver letto la cartella dei contatti, usiamo le classi per la gestione dei file XML, per creare un file XML con tutti i contatti della rubrica di Microsoft Outlook. 
Di seguito si riporta il frammento di codice delle suddette operazioni, in un evento click di un pulsante.


private void BtnOutlookXML_Click(object sender, EventArgs e)

 {

     try

     {

 

 

         Microsoft.Office.Interop.Outlook.Application outlookApp = new Microsoft.Office.Interop.Outlook.Application();

         NameSpace outlookNamespace = outlookApp.GetNamespace("MAPI");

         MAPIFolder contattiTrovati = outlookNamespace.GetDefaultFolder(OlDefaultFolders.olFolderContacts);

 

         using (XmlWriter writerStream = XmlWriter.Create(@"C:\Varie\Contatti.xml"))

         {

             writerStream.WriteStartDocument();

             writerStream.WriteStartElement("Contatti");

 

             foreach (ContactItem contatto in contattiTrovati.Items)

             {

                 if (contatto is ContactItem)

                 {

                     writerStream.WriteStartElement("Contatto");

 

                     writerStream.WriteElementString("Nome", contatto.FirstName ?? "");

                     writerStream.WriteElementString("Cognome", contatto.LastName ?? "");

                     writerStream.WriteElementString("Email", contatto.Email1Address ?? "");

                     writerStream.WriteElementString("Note", contatto.Body ?? "");

                     writerStream.WriteEndElement();

                 }

             }

 

             writerStream.WriteEndElement();

             writerStream.WriteEndDocument();

         }

 

         Console.WriteLine("Contatti esportati in formato XML.");

     }

     catch (System.Exception ex)

     {

         MessageBox.Show(ex.Message);

     }

 }

 


















Nessun commento: