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