net6-outlook

Cómo conectar con el API de Microsoft Outlook desde NET6

Con signos entradas dedicadas a ver cómo conectar una aplicación a través de su API, desde una aplicación de NET6 escrita en C#.

Como hemos dicho antes entradas integrar distintas tecnologías es algo muy necesario dentro del campo del IoT. Anteriormente hemos visto cómo conectarnos con Microsoft Word y Microsoft Excel. En esta ocasión nos tocará conectarnos con Outlook.

Igual que hemos visto en el resto de entradas de la serie, poder conectarnos con Outlook no significa que vaya a ser la mejor opción para nuestro proyecto. En particular, hay formas mejores de establecer comunicación, e incluso de enviar emails que usar el API de Outlook.

Pero en ciertas ocasiones es un requisito del proyecto hacerlo específicamente en Outlook. Por ejemplo si queremos mostrarla pantalla de Outlook con el mail generado antes de enviarlo, o si queremos añadir una cita a un calendario.

En cualquier caso es un ejemplo bastante interesante de uso de APIs e integración de tecnologías, que es el objetivo de esta serie. Así que ¡vamos a ello!

Cómo conectar a Microsoft Outlook con una aplicación de NET6

Comenzamos el ejemplo creando una sencilla aplicación de consola en NET6. Añadimos como referencia ‘COM’ la referencia “Microsoft Outlook xx.0 Object Library”, donde xx será la versión de Microsoft Outlook que tengas instalada en tu ordenador.

En el caso de Microsoft Outlook, necesitamos hacer un paso que no teníamos en Word y Excel, que es permitir el acceso mediante programación. Para ello habilitamos la opción en Opciones -> Centro de confianza -> Acceso mediante programación.

A continuación pegamos este código en nuestra aplicación de consola,

using Microsoft.Office.Interop.Outlook;
using OutlookApp = Microsoft.Office.Interop.Outlook.Application;

OutlookApp outlookApp = new OutlookApp();
MailItem mailItem = outlookApp.CreateItem(OlItemType.olMailItem);

mailItem.To = "your@email.com";
mailItem.Subject = $"Subject";
mailItem.HTMLBody = "";

mailItem.Display(false);
mailItem.Send();

Console.ReadLine();

La documentación de Microsoft Outlook no es tan buena como la de Excel y la de Word, pero os dejo un enlace por si de Visual Basic https://learn.microsoft.com/es-es/office/vba/outlook/concepts/getting-started/automating-outlook-from-a-visual-basic-application. No es demasiado difícil traducir los conceptos.

Con el API de .NET para Microsoft Outlook podemos consultar los correos recibidos, crear nuevos correos, adjuntar ficheros, consultar el calendario, crear nuevas citas, y en general cualquier opción que podríamos hacer a mano.

Y hasta aquí la parte de la serie década a las aplicaciones de Microsoft Office. En la próxima entrada de la serie pasaremos a aplicaciones de CAD, viendo el API de Solid Works.

Descarga el código

Todo el código de esta entrada está disponible para su descarga en Github. github-full