Como crear un nuevo correo en outlook desde vb.net

By | 2009/12/13

Estoy desarrollando una aplicación para aseguradores y mi cliente me pide que pueda enviar correos pero utilizando MS Outlook ya que quiere que le quede una constancia en el outlook del envio.

Encontré una rutina que me funciona muy bien con el único inconveniente que Outlook me pide autorización para crear el correo, aparte de esto todo muy bien.

Esta es la rutina.

Imports Microsoft.Office.Interop  ‘aqui debes hacer una referencia al com de outlook

Private moApp As Outlook.Application
Private mbKillMe As Boolean = True
Private cabecera, estilo, cuerpo, footer As String

Private Sub enviar_mail()
‘primero verifico que tenga el outlook instalado
If verificar_outlook() Then
crear_email()
cerrar_email()
End If
End Sub
Private Function verificar_outlook() As Boolean
Try
moApp = CType(GetObject(, “Outlook.Application”), Outlook.Application)
mbKillMe = False
Catch ex As Exception
If moApp Is Nothing Then
moApp = New Outlook.Application
mbKillMe = True
End If
End Try
If moApp Is Nothing Then
MessageBox.Show(“Outlook no está instalado”, “CASSA”, MessageBoxButtons.OK)
Return False
End If
Return True
End Function
Private Sub crear_email()
Dim oEmail As Outlook.MailItem
Me.Cursor = Cursors.WaitCursor
oEmail = DirectCast(moApp.CreateItem(Outlook.OlItemType.olMailItem), Outlook.MailItem)
With oEmail
.To = “”
.CC = “”
.Subject = “Seguros Cassa”
.BodyFormat = Outlook.OlBodyFormat.olFormatHTML
.HTMLBody = estilo & cuerpo
.Importance = Outlook.OlImportance.olImportanceNormal
.ReadReceiptRequested = False
‘.Attachments.Add(“C:\archivo.jpg”, Outlook.OlAttachmentType.olByValue)
.Recipients.ResolveAll()
.Save()
.Display() ‘Muestra el mensaje para que se pueda editar
‘.Send() ‘Si lo activas se envia automaticamente sin editar
End With
Me.Cursor = Cursors.Default
End Sub
Private Sub cerrar_email()
If mbKillMe = True Then
If Not moApp Is Nothing Then
moApp.Quit()
moApp = Nothing
End If
End If
End Sub

2 thoughts on “Como crear un nuevo correo en outlook desde vb.net

  1. Hugo

    Desactiva la línea
    ‘.Recipients.ResolveAll()

  2. Sergio Pino

    Muchísimas gracias,

    Me función perfectamente. Me pide confirmación para el uso de Outlook 2 veces…no se porque…pero no pasa ná.

    Gracias.

Leave a Reply

Your email address will not be published. Required fields are marked *

This blog is kept spam free by WP-SpamFree.