Funcion para enviar un email desde Visual Basic .NET

0 comentarios


Os dejo una función que permite enviar un correo desde Visual Basic .NET. Puede incluso enviar archivos adjuntos pasando las rutas de dichos archivos.

    Public Shared Function EnviarCorreo(ByVal CuentaCorreoEnvio As String,
                                        ByVal ClaveCorreoEnvio As String,
                                        ByVal ServidorSMTP As String,
                                        ByVal PuertoSMTP As Integer,
                                        ByVal DireccionesEmail As List(Of String),
                                        ByVal DireccionEmailCopia As List(Of String),
                                        ByVal Asunto As String,
                                        ByVal Cuerpo As String,
                                        ByVal RutaFichero As List(Of String),
                                        ByVal MostrarMensajeOK As Boolean,
                                        ByVal NombreVisibleCorreo As String,
                                        ByVal DireccionEmailCopiaOculta As List(Of String)) As Boolean

        Dim miMail As New MailMessage

        Try
            Dim smtp As New SmtpClient
            Dim i As Integer = 0
            Dim miRecurso As Attachment

            Dim miDireccion As New MailAddress(LCase(CuentaCorreoEnvio), NombreVisibleCorreo, System.Text.Encoding.UTF8)

            miMail.From = miDireccion

            Dim html As AlternateView = AlternateView.CreateAlternateViewFromString(Cuerpo, Encoding.UTF8, "text/html")

            ' If Me.iTipo <> Constantes.TipoCorreo.Boletin Then
            i = 0
            While i < DireccionesEmail.Count
                miMail.To.Add(New MailAddress(DireccionesEmail(i)))
                i = i + 1
            End While

            i = 0
            While i < DireccionEmailCopia.Count
                miMail.CC.Add(New MailAddress(DireccionEmailCopia(i)))
                i = i + 1
            End While

            i = 0
            While i < DireccionEmailCopiaOculta.Count
                miMail.Bcc.Add(New MailAddress(DireccionEmailCopiaOculta(i)))
                i = i + 1
            End While

            miMail.Subject = Asunto
            miMail.IsBodyHtml = True
            miMail.Body = Cuerpo

            i = 0
            While i < RutaFichero.Count
                miRecurso = New Attachment(RutaFichero(i))
                miMail.Attachments.Add(miRecurso)
                i = i + 1
            End While

            smtp.Port = PuertoSMTP
            smtp.Timeout = 30000
            smtp.Host = ServidorSMTP  ' Config.ServidorSMTP
            smtp.EnableSsl = True
            smtp.Credentials = New NetworkCredential(LCase(CuentaCorreoEnvio), ClaveCorreoEnvio)
            smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network

            EnviarCorreo = True

            ServicePointManager.ServerCertificateValidationCallback = Function(s As Object, certificate As X509Certificate, chain As X509Chain, sslPolicyErrors As SslPolicyErrors) True

            smtp.Send(miMail)

            If MostrarMensajeOK Then
                MessageBox.Show("Mensaje enviado correctamente", "Administrador",
                                 MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If
        Catch ex As Exception
            EnviarCorreo = False

            If MostrarMensajeOK Then
                MessageBox.Show("ERROR " & ex.Message, "ADMINISTRADOR",
                              MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If

        Finally
            miMail.Dispose()
        End Try
    End Function

El servidor smtp, por ejemplo de Gmail es "smtp.gmail.com".


0 comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...
Copyright 2011 INFORMATICUCHO.
Blogger Template by Noct.