Outlook y VB.NET
Integrando aplicaciones con outlook 

Fecha: 07/Mar/2004 (07/Mar/2004)
Autor: Enriquillo Mañón Ramírez (enriquillo_manon@hotmail.com)

 
.

Introducción

            En estos días existen un sin número de exigencias para el desarrollo de aplicaciones comerciales y estas exigencias crecen a medida que nuevas tecnologías van surgiendo y posicionándose en el mercado como lideres de su tipo, entre estas exigencia existe la muy requerida integración y los sistemas para WorkFlow. Las aplicaciones de hoy en día deben ser capaces de integrarse con la mayoría de las aplicaciones de escritorios que utilizamos en el día a día, entre estas aplicaciones se encuentra en primer lugar Microsoft Office, en República Dominicana (estoy especulando) creo que de cada 10 computadores 6 tienen Microsoft Office en cualquiera de sus versiones, una aplicación debe ser capas de aprovechar los beneficios que brindan cada una de las aplicaciones de Office como son enviar sus informes a hojas de cálculos (Excel), Crear Informes con estilos profesional y bien presentado (Word), Notificaciones y envío de mensajes (Outlook), etc.

WorkFlow

            WorkFlow se define como un sistema que ayuda a automatizar los procesos de negocios para facilitar las tareas del día a día.

            Mediante la integración de Outlook con nuestra aplicación podemos crear un excelente sistema de WorkFlow para cualquier entidad que utiliza Microsoft Office.

Entrando en Materia

            Aquí les va unos cuantos ejemplos de cómo crear Mail, Contactos, Notas, Tareas y otras funcionalidades de Outlook desde nuestra aplicación.

            Primero crearemos una forma la cual será nuestra aplicación que se integrará con Outlook y se verá así:

  Para hacer referencia a los objetos de Outlook desde nuestra aplicación lo primero que debemos hacer es agregar una referencia de Microsoft Outlook 9.0 desde la paleta COM desde la ventana de Agregar Referencia


Este objeto nos proveerá acceso a los objetos de Microsoft Outlook para poder utilizarlos en nuestra aplicación, luego podemos iniciar haciendo referencia al Namespaces Outlook, ejemplo: crearemos un objeto tipo aplicación Outlook a nivel de clase.

    '* Creamos un Objeto que hará referencia a nuestra aplicación

    '* Outlook

    Dim m_OutLook As Outlook.Application

 Mail

Para crear un mail desde nuestra aplicación primero debemos crear una instancia de la aplicación Outlook, hacemos doble clic en el botón Mail de nuestra forma, Creamos un objeto del tipo de clase que queremos crear (en este caso la clase MailItem), luego asignamos las valores a las propiedades que necesitamos de nuestra instancia MailItem y para ejecutar, o sea, enviar nuestro mail solo invocamos el método send de nuestra instancia de la clase MailItem Ej.:

        Try

            '* Creamos un Objeto tipo Mail

            Dim objMail As Outlook.MailItem 

            '* Inicializamos nuestra apliación OutLook

            m_OutLook = New Outlook.Application

            '* Creamos una instancia de un objeto tipo MailItem

            objMail = m_OutLook.CreateItem(Outlook.OlItemType.olMailItem)

            '* Asignamos las propiedades a nuestra Instancial del objeto

            '* MailItem

            objMail.To = "ENRIQUILLO_MANON@HOTMAIL.COM"

            objMail.Subject = "Prueba de integración con Outlook"

            objMail.Body = "Esto es una prueba de integración de WorkFlow con Outlook" 

            '* Enviamos nuestro Mail y listo!

            objMail.Send()

            '* Desplegamos un mensaje indicando que todo fue exitoso

            MessageBox.Show("Mail Enviado", "Integración con OutLook", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) 

        Catch ex As Exception

            '* Si se produce algun Error Notificar al usuario

            MessageBox.Show("Error enviando mail")

        Finally

            m_OutLook = Nothing

  End Try

 

Cada una de las propiedades que aquí asignamos son conocidas por todo aquel que a utilizado un programa para enviar mail, La Propiedad “To” donde especificamos la dirección o direcciones si son varias separadas por coma a la cual le enviaremos el mensaje, “Subject” que es un resumen del mensaje que estamos enviando (es como un saludo o una introducción), “Body” que es el cuerpo del mensaje, también hay otras propiedades importantes que podemos utilizar como “Attachments” que nos sirve para agregar archivos adjuntos a nuestro mensaje. 

Esto nos podría ser utilidad en muchas situaciones dependiente la naturaleza de nuestra aplicación, Ej. En un sistema de Cta. Por cobrar para notificar a los clientes cuando su factura esta próxima a vencer, juzguen ustedes seguro que les llegara muchas formas en que aplicarlo.

Contactos.

Los contactos son como una agenda personal que puedes manejar desde Outlook almacenando información sobre personas y empresas que necesites tener siempre a la mano, bueno podemos también desde nuestra aplicación crear contactos en Outlook.  Para crear un contacto desde nuestra aplicación creamos un objeto tipo ContactItem, luego iniciamos una instancia de Outlook, creamos una instancia de la clase ContactItem, asignamos las propiedades necesarias y ejecutamos en método Save para salvar nuestro contacto en Outlook  Ej.: 

        Try

            '* Creamos un Objeto tipo ContactItem

            Dim objContact As Outlook.ContactItem

            '* Inicializamos nuestra apliación OutLook

            m_OutLook = New Outlook.Application 

            '* Creamos una instancia de un objeto tipo MailItem

            objContact = m_OutLook.CreateItem(Outlook.OlItemType.olContactItem)

            '* Asignamos las propiedades a nuestra Instancial del objeto

            '* ContactItem

            objContact.NickName = "ElMoreno"

            objContact.FullName = "Enriquillo Mañón Ramírez"

            objContact.JobTitle = "Ingeniero de Software Senior"

            objContact.CompanyName = "CAM Informática"

            objContact.BusinessAddressCity = "Santo Domingo"

            objContact.BusinessAddressCountry = "República Dominicana"

            objContact.BusinessAddressState = "D. N."

            objContact.BusinessAddressStreet = "Euclides Morillo, #63, Arroyo Hondo"

            objContact.BusinessFaxNumber = "732-4747"

            objContact.BusinessHomePage = "www.caminf.com"

            objContact.BusinessTelephoneNumber = "683-7000" 

            '* Salvamos nuestro contracto en Outlook

            objContact.Save()

             '* Desplegamos un mensaje indicando que todo fue exitoso

            MessageBox.Show("Contacto Creada", "Integración con OutLook", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) 

        Catch ex As Exception

            '* Si se produce algun Error Notificar al usuario

            MessageBox.Show("Error enviando mail")

        Finally

            m_OutLook = Nothing

        End Try

      Las Propiedades del objeto ContactItem se describen a sí mismas, Ej. FullName es el nombre completo del contacto, JobTitle es su ocupación y así sucesivamente, hay propiedades especiales como son las direcciones, el objeto trae 3 tipos de direcciones predefinidas la BussinesAddress la cual se utiliza para especificar la dirección de la empresa, HomeAddress la cual se utiliza para especificar la dirección de un domicilio y OtherAddress para especificar cualquier otra dirección, pero si se desea incluir nuevos tipos de direcciones y direcciones solo debe crear una instancia del objeto AddressEntry asignar las propiedades y agregarlas a la colección AddressEntries que expone el objeto ContactItem. 

Tareas

Tareas son objetos que creamos en Outlook para medir el progreso de una asignación, las tareas pueden crearse para que sean repetitivas ejemplo, que todos los días en la mañana debo sacar backup de la base de datos, y especificas Ej. Hoy debo actualizar todos los antivirus de las estaciones de trabajo. Desde nuestra aplicación podemos también crear Tareas aquí se lo muestro.

        Try

            '* Creamos un Objeto tipo TaskItem

            Dim objTask As Outlook.TaskItem 

            '* Inicializamos nuestra apliación OutLook

            m_OutLook = New Outlook.Application

            '* Creamos una instancia de un objeto tipo TaskItem

            objTask = m_OutLook.CreateItem(Outlook.OlItemType.olTaskItem) 

            '* Asignamos las propiedades a nuestra Instancial del objeto

            '* TaskItem

            objTask.Body = "Este ejemplo creara una tarea en Outlook"

            objTask.Subject = "Crear Tarea en OutLook"

            objTask.DueDate = DateTime.Now.ToShortDateString

            objTask.StartDate = DateTime.Now.ToShortDateString

            objTask.Owner = "<Tu correo>"

            '* Salvamos nuestra Tarea en Outlook

            objTask.Save() 

            '* Desplegamos un mensaje indicando que todo fue exitoso

            MessageBox.Show("Tarea Creada", "Integración con OutLook", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)

        Catch ex As Exception

            MessageBox.Show("Error enviando mail") 

        Finally

            m_OutLook = Nothing

        End Try

A las tareas también podemos crearles tiempo de notificación, es decir, podemos decirles que cada n minutos nos envíe un mensaje de alerta sobre esta tarea hasta que la terminemos, etc. 

Notas

Las Notas como su nombre lo indica son pequeñas notas que podemos almacenar en Outlook con la finalidad de consultar cuando lo necesitamos, Ej. Podemos crear notas para guardar un número de referencia que necesitamos muy a menudo, La fecha en que actualice mi antivirus, etc., bueno también podemos crear estas notas desde nuestra aplicación, aquí esta la prueba ;-) Ej.: 

        Try

            '* Creamos un Objeto tipo NoteItem

            Dim objNote As Outlook.NoteItem

            '* Inicializamos nuestra apliación OutLook

            m_OutLook = New Outlook.Application 

            '* Creamos una instancia de un objeto tipo NoteItem

            objNote = m_OutLook.CreateItem(Outlook.OlItemType.olNoteItem)

            '* Asignamos las propiedades a nuestra Instancial del objeto

            '* NoteItem

            objNote.Body = "Esta nota fue creada mediante el programa de " & _

                           "prueba de integración de Outlook con .NET " 

            '* Salvamos nuestra Tarea en Outlook

            objNote.Save()

            '* Desplegamos un mensaje indicando que todo fue exitoso

            MessageBox.Show("Nota Creada", "Integración con OutLook", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) 

        Catch ex As Exception

            '* Si se produce algun Error Notificar al usuario

            MessageBox.Show("Error enviando mail")

        Finally

            m_OutLook = Nothing 

        End Try

Apuntes: 

Los Apuntes son actividades que usted calendariza que debe tener pendiente realizar en una fecha dada y que esta no envuelve invitar a otra persona o reservar recursos. Ej. El 15 de junio será el lanzamiento de “Yukon” no debo faltar., bueno también podemos crear estos apuntes calendarizados desde nuestra aplicación, aquí esta la muestra:

        Try

            '* Creamos un Objeto tipo AppointmentItem

            Dim objAppoint As Outlook.AppointmentItem 

            '* Inicializamos nuestra apliación OutLook

            m_OutLook = New Outlook.Application

             '* Creamos una instancia de un objeto tipo AppointmentItem

            objAppoint = m_OutLook.CreateItem(Outlook.OlItemType.olAppointmentItem) 

            '* Asignamos las propiedades a nuestra Instancial del objeto

            '* AppointmentItem

            objAppoint.Subject = "Lanzamiento Yukon"

            objAppoint.Start = DateTime.Now

            objAppoint.End = DateTime.Now.AddDays(3) 'Este apunte nos notificara todos los dias hasta el 3er día de su creación

            objAppoint.Body = "Recordar el lanzamiento de Yukon” 

            '* Salvamos nuestra Tarea en Outlook

            objAppoint.Save()

            '* Desplegamos un mensaje indicando que todo fue exitoso

            MessageBox.Show("Apunte Creado", "Integración con OutLook", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) 

        Catch ex As Exception

            '* Si se produce algun Error Notificar al usuario

            MessageBox.Show("Error enviando mail") 

        Finally

            m_OutLook = Nothing

        End Try  

            En la fecha que indiquemos en la propiedad “Start” se nos desplegara una ventana recordándonos el apunte que calendarizamos para esa fecha, también podemos agregar archivos de sonidos que se ejecutaran en la fecha indicada.

            Estas son algunas de las tantas cosas que hace Outlook y que podemos integrar con nuestras aplicaciones para darle mayor versatilidad y vistosidad, también podemos crear desde nuestra aplicación para Outlook lista de distribuciones (Distribution List) que son grupos de contactos a los cuales se les envían mensajes muy frecuentemente, también podemos crear Jornadas (Journal) que nos sirven para darle seguimiento a iteración con contactos y/o mensajes enviados. 

            Hasta aquí este pequeño articulo espero que les sirva

Gracias mil…

Ing. Enriquillo Mañón Ramírez, Ingeniero en Sistemas, MCSD .NET, Ingeniero de Sistema Senior, Desarrollador de aplicaciones para empresas, Consultor para APLISOFT, S. A., Consultor para DULCERA DOMINICANA


ir al índice

Fichero con el código de ejemplo:  ( Emanon_OutlookVB.zip 8.84 KB)