Cómo enviar emails con Visual Basic.NET

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

Mumbanet-google

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. necesito enviar correos con codigo html dentro para que puedan pinchar las imagenes dentro del body



  2. 298274818336917502974 From the official [URL=http://www.onlinemuslimitems.com/]Muslim Abaya[/URL] website of anticipated [URL=http://www.onlinemuslimitems.com/]Muslim Items[/URL] Star Wars The [URL=http://www.onlinemuslimitems.com/]Muslim hijab[/URL] Old Republic comes [URL=http://www.onlinemuslimitems.com/]Islamic abaya[/URL] this new video where the [URL=http://www.onlinemuslimitems.com/]Muslim scarf[/URL] game designers [URL=http://www.onlinemuslimitems.com/]Buy Muslim Abaya[/URL] tell us a little about [URL=http://www.onlinemuslimitems.com/]Cheap Muslim Abaya[/URL] the 2 different [URL=http://www.onlinemuslimitems.com/]Buy Muslim Items[/URL] classes find Sith characters [URL=http://www.onlinemuslimitems.com/]Cheap Muslim Items[/URL] in the game, The [URL=http://www.findnike.com]Islamic hijab[/URL] Inquisitor Sith [URL=http://www.onlinemuslimitems.com]Islamic scarf[/URL] and Sith Warrior. They explain a lot of [URL=http://www.onlinemuslimitems.com]Islamic Items[/URL] pictures as designed [URL=http://www.onlinemuslimitems.com]Muslim wear[/URL] these characters and [URL=http://www.onlinemuslimitems.com]Muslim clothing[/URL] their characteristics [URL=http://www.onlinemuslimitems.com]Muslim wear Pas Cher[/URL] one more devoted [URL=http://www.onlinemuslimitems.com]Muslim wear[/URL] to the use of force [URL=http://www.onlinemuslimitems.com]Muslim clothing[/URL] powers and one more [URL=http://www.onlinemuslimitems.com/]Muslim Items For Sale[/URL] dedicated to close combat.



  3. MUY BUENO , PERO TENGO EL SIGUIENTE PROBLEMA, CUANDO ME CONECTO DIRECTAMENTE A INTERNET TODO BIEN, USAR LA CONEXION POR PROXY DE MI OFC NO LO ENVIA Y NO SE QUE HACER EN ESTE CASO , QUE FALTA...
    GRACIAS



  4. Mil y mil gracias a la persona que escribió el codigo de enviar mensajes, es un duro.



  5. Necesito n codigo que me pueda improtar un archivo de texto desde c: a outlook....rapido porfa
    ...



  6. Hola me sirvio muschisimo este ejemplo con outlook mi pregunta es si se puede agregar confirmacion de entrga y de lectura

    Gracias



  7. De hecho esta clase esta obsoleta.
    Ahora seria System.Net.Mail (le aumentamos en NET)
    Pueden descargar un ejemplo del código fuente funcionando desde aqui:

    www.mejoralex.com/trabajar-con-hebras-en-visual-basic-net



  8. Para que no te salga ese error cambialo por: System.Net.Mail.MailMessage



  9. No me funciona me dice que "System.Web.Mail" es obsoleto



  10. Pero el envio mediante outlook solo me funciona cuando esta abierto el Outlook...
    why



  11. Excelente artículo.

    Gracias



  12. Este articulo funciona para Visual Studio 2003



  13. Imports System.Web.Mail
    Imports System.Net.Mail
    Imports System.Net.Mail.MailMessage
    Imports System.Net.Mail.SmtpClient
    Module Module1
    Sub Main()
    Dim oMsg As *MailMessage = New MailMessage()
    oMsg.From = My.Forms.Form6.Label2.Text
    oMsg.To = "Tecnisystems.soft"
    oMsg.Subject = "Se te ha enviado tu contraseña de Tecnisystems.soft"
    oMsg.BodyFormat = *MailFormat.Html
    oMsg.Body = "Tu contraseña es: "

    Dim sFile As String
    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
    (*) aki es dond me sale los errores
    necesitosu aydua



  14. 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?



  15. ¿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



  16. 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.



  17. 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



  18. exelente, se va a favoritos.

    gracias

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

API DE FACEBOOK
GOOGLE CALENDAR API
GOOGLE MAPS API