Cómo enviar emails con Visual Basic.NET

Escrito por Carla Vázquez el Viernes 07 de Marzo de 2008 a las 14:04hs

En este artículo presentaremos dos formas posibles de realizar el envío de mensajes de correo electrónico a través de la programación con Visual Basic .Net. El primer ejemplo se lleva a cabo mediante VB y System.Web.Mail mientras que en el segundo caso el énfasis está puesto en cómo enviar un correo electrónico utilizando VB y Outlook.  

El primer paso a realizar es crear desde el menú Archivo un Proyecto Nuevo. A partir de la opción Aplicación de consola se creará un módulo. Acto seguido deberá agregarse una referencia System.Web.dll desde el menú del Proyecto y poner aceptar en el cuadro llamado “Agregar referencias”.

A continuación notaremos un ejemplo para ver su funcionamiento:

Imports System.Web.Mail

Module Module1

Sub Main()
  Dim oMsg As MailMessage = New MailMessage()
  oMsg.From = "nombre@delremitente.com"
  oMsg.To = "nombre@deldestinatario.com"
  oMsg.Subject = "Aquí el asunto" 
  oMsg.BodyFormat = MailFormat.Html
  oMsg.Body = "<HTML><BODY><B>Aquí el texto correspondiente</B></BODY></HTML>"

[ en el caso de querer agregar un archivo adjunto, realizar el siguiente paso ]

  Dim sFile As String = "C:\temp\archivo.txt"
  Dim oAttch As MailAttachment = New MailAttachment(sFile, MailEncoding.Base64)   oMsg.Attachments.Add(oAttch)
  SmtpMail.SmtpServer = "TuservidorSMTP"
  SmtpMail.Send(oMsg)
  oMsg = Nothing
  oAttch = Nothing

End Sub
End Module

Ahora bien, utilizando Visual Basic .Net también se puede recurrir a la Biblioteca de Objetos del Outlook para enviar un correo electrónico con archivos adjuntos. Para este caso, se vuelve a crear un nuevo proyecto y un nuevo módulo. Una vez creado este módulo y, asumiendo que tenemos instalado el Microsoft Outlook en la computadora, se deberá agregar desde el menú Proyecto, una referencia (tal como vimos en el ejemplo anterior). En este caso, en la opción COM se deberá buscar Biblioteca de Objeto de Outlook y seleccionar. Una vez agregada esta referencia, pulse aceptar.

Para este segundo ejemplo, el código que se necesita es el siguiente (precaución: las aclaraciones en corchetes no forman parte del código):

Module Module1
Sub Main()

[1. El primer paso es crear una aplicación de Outlook]

Dim oApp As Outlook._Application
oApp = New Outlook.Application()

' Crear un nuevo elemento de correo.
[2. Una vez realizado el punto 1, se procede a crear un correo electrónico]

Dim oMsg As Outlook._MailItem
oMsg = oApp.CreateItem(Outlook.OlItemType.olMailItem)
oMsg.Subject = "Enviar datos adjuntos utilizando OOM en Visual Basic .NET"
oMsg.Body = "Texto de ejemplo" & vbCr & vbCr

[3. Indicar la dirección del usuario a quien se le enviará el mensaje de correo]

oMsg.To = "destinatario@miejemplo.com"

[4. Para agregar un dato adjunto, se sigue de este modo, indicando la ruta de acceso al archivo solicitado]

Dim sSource As String = "C:\Temp\ejemplo.txt"
Dim sDisplayName As String = "ejemplo.txt"
Dim sBodyLen As String = oMsg.Body.Length
Dim oAttachs As Outlook.Attachments = oMsg.Attachments
Dim oAttach As Outlook.Attachment

oAttach = oAttachs.Add(sSource, , sBodyLen + 1, sDisplayName) oMsg.Send()
oApp = Nothing
oMsg = Nothing
oAttach = Nothing
oAttachs = Nothing

End Sub
End Module

Estas dos variantes son posibles gracias a la versatilidad que presenta Visual Basic .Net que permite una diversa gama de aplicaciones web de mucha utilidad al momento de la programación e implementación del producto.


comentarios



  1. exelente, se va a favoritos.

    gracias



  2. Estos procedimientos funcionan para programacion en Pockets Pc??? O en su defecto, como podria hacer funcionarlo en un aplicativo escrito en VB.NET para Pocket Pc?
    Saludos



  3. Muy interesante el artículo.
    ¿Se podría hacer lo mismos si el cliente de correo es Lotus Notes 7? ¿Cómo?
    Muchas gracias y un saludo.



  4. ¿existe una manera de poder obtener los archivos adjuntos que llegan a la bandeja de entrada de outlook a traves de una aplicacion en visual basic o en access?

    necesito una aplicacion que administre estos documentos y no encuentro la manera de enlazarlos para la entrada.

    Gracias por su ayuda

    Mariel



  5. solo para visual 2005 o funciona en 2008? lo intente en 2008 pero no paso nada, me decia que .web es obsoleto y que porbara con .net, usando .net como llego a lo demas, supongo que varia lo de body y mail no?

agregar comentario


Se permiten las etiquetas HTML <b>, <i> y <p>. Si ingresa alguna dirección web o dirección de email serán convertidos en enlaces automáticamente.





publicidad