viernes, septiembre 29, 2023

Enviar correos desde .NET (WinForms) utilizando System.Web.Mail

Descargar solución SendMail.zip

Luego de probar varios ejemplos este me pareció muy bueno, ya que no utiliza Outlook y permite enviar sin tener algún otro tipo de software instalado. Utiliza solo las librerías de .NET

Este ejemplo envía correos si utilizar algun otro medio intermedio, solo necesitamos los datos de nuestro servidor SMTP y listo, también podemos enviar correos con varios archivos adjuntos.

Como primer paso sería importar en References la librería de .NET System.Web

Ahora en el código de nuestra aplicación le indicamos lo siguiente.

'Variable con la que enviamos el correo
Dim obj As System.Web.Mail.SmtpMail
'Variable que amlmacena los Attachment
Dim Attachment As System.Web.Mail.MailAttachment
Dim Mailmsg As New System.Web.Mail.MailMessage

Private Sub btnEnviar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnviar.Click
Try
'Indicamos el servidor smtp que vamos a utilizar
obj.SmtpServer = «smtp.midominio.com»

'Indicamos el correo al que se le va a enviar el mensaje
'si son varios los separamos por ;
Mailmsg.To = Me.txtEmail.Text

'Definimos el nombre y correo del que envia el correo
Mailmsg.From = «» & «Mi Nombre» & » <" & "micorreo@midominio.com" & ">«

'Especificamos el tipo de formato del body
If chkHtmlFormat.Checked = True Then
'Envia el correo en formato HTML
Mailmsg.BodyFormat = Mail.MailFormat.Html
Else
Mailmsg.BodyFormat = Mail.MailFormat.Text
End If

''Si usted desea agregar la propiedad Reply to al correo que envia
'Mailmsg.Headers.Add(«Reply-To», «otro@midominio.net»)

''Algun header que queramos agregar
'Mailmsg.Headers.Add(«Manoj», «TestHeader»)

Mailmsg.Subject = txtSubject.Text

''Si enviamos solo un archivo (Attachment) y
''el path esta en un text box usamos esta
'Attachment = New MailAttachment(Me.txtAttach.Text)
'Mailmsg.Attachments.Add(Attachment)

'Si vamos a enviar varios archivos (Attachments)
'Y tenemos los path en in ListView, usamos este
Dim itm As ListViewItem
For Each itm In Me.lvArchivos.Items
Attachment = New Mail.MailAttachment(itm.Text)
Mailmsg.Attachments.Add(Attachment)
Next

Mailmsg.Body = Me.txtBody.Text
obj.Send(Mailmsg)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

Descargar solución SendMail.zip




Artículo anteriorHacer Joins entre DataTables
Artículo siguienteOffice 2003 Web Components
Roy Rojashttp://www.dotnetcr.com
Con más de 20 años de experiencia en programación, experto en lenguajes .NET, VB, C#, ASP.NET, Xamarin, XCode, DBA en SQL Server. Creador de dotnetcr.com, sitio web para programadores en español. royrojas.com | dotnetcr.com | GitHub

Redes Sociales

2,736FansMe gusta
326SeguidoresSeguir

Popular esta semana

SQL Server

Cómo saber la fecha que se modificó un procedimiento almacenado

Poder saber cuales objetos o procedimientos almacenados se modificaron recientemente es muy útil principalmente en bases de datos donde varios desarroladores tienen acceso
SQL Server MERGE

MERGE en SQL Server para Insert, Delete y Update con dos tablas

Ejemplo práctico usando MERGE para sincronizar dos tablas, Insert, Update y Delete en un solo query. Válido para SQL SERVER 2008 o superior.

Convertir String a Base64 y Base64 a String

Hemos tenido algunas consultas en estos días de cómo convertir Texto String a Base64 y viceversa, entonces decidimos hacer este pequeño ejemplo. Las funciones son...

Últimos artículos

SQL Server MERGE

MERGE in SQL Server for Insert, Delete and Update with two tables

Practical example using MERGE to synchronize two tables, Insert, Update and Delete in a single query. Valid for SQL SERVER 2008 or...

Como crear una API REST con ASP.NET Core 6.0

Crear una API REST con C# en ASP.NET es un proceso sencillo y rápido que permite exponer un conjunto de recursos a...
Machine Learning & Python

Introducción a Machine Learning en Python

Machine Learning es una rama de la inteligencia artificial que se enfoca en el desarrollo de sistemas que pueden aprender de...
SQL Server MERGE

MERGE en SQL Server, como utilizarlo de forma sencilla

El comando MERGE en SQL Server se utiliza para combinar datos de varias tablas en una sola tabla. Es útil para actualizar...