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.
exelente, se va a favoritos.
gracias
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
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.
¿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
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?