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.
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?
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
Este articulo funciona para Visual Studio 2003
Excelente artículo.
Gracias
Pero el envio mediante outlook solo me funciona cuando esta abierto el Outlook...
why
No me funciona me dice que "System.Web.Mail" es obsoleto
Para que no te salga ese error cambialo por: System.Net.Mail.MailMessage
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
Hola me sirvio muschisimo este ejemplo con outlook mi pregunta es si se puede agregar confirmacion de entrga y de lectura
Gracias