giovedì 12 giugno 2025

C# export Microsoft Outlook contacts to xml file .Net 9

In questo piccolo frammento di codice .Net 9 e con il linguaggio di programmazione C#, viene illustrata una tecnica per esportare i contatti di Microsoft Outlook in un file XML.

Dopo aver aggiunto il riferimento al componente COM di Microsoft Outlook 16.0 Object Library, possiamo utilizzare le varie classi per gestire il programma di posta elettronica più conosciuto al mondo.

Aggiungiamo in alto, sopra ogni dichiarazione, lo spazio dei nomi relativo al riferimento alla libreria aggiunta in precedenza.

Di seguito il frammento di codice di tale dichiarazione.

C#

using Microsoft.Office.Interop.Outlook;



Nell'evento click di un pulsante, scriviamo il codice che tramite le classi di Microsoft Outlook, rileva dalla cartella dei contatti tutti le varie informazioni, quali nome, cognome, indirizzo di posta elettronica e note, e tramite le classi per la gestione dei file XML, li esporta.

Si riporta qui di seguito il frammento di codice delle suddette operazioni.


C#

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: