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 = "[email protected]"
??oMsg.To = "[email protected]"
??oMsg.Subject = "Aqu? el asunto"?
??oMsg.BodyFormat = MailFormat.Html
??oMsg.Body = "Aqu? el texto correspondiente"

[ 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 = "[email protected]"

[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?



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



  7. Este articulo funciona para Visual Studio 2003



  8. Excelente artículo.

    Gracias



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



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



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



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



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

    Gracias

agregar comentario


Se permiten las etiquetas HTML , y

. 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