Visual Basic Foro

Programación => Visual Basic .NET / C# => Mensaje iniciado por: softmania en Octubre 17, 2013, 08:52:59 pm

Título: CLASE PARA ENVIAR CORREOS
Publicado por: softmania en Octubre 17, 2013, 08:52:59 pm
Citar
Hola a todos ... aquí les dejo una clase para enviar correos.
La clase lo único que hace es ordenar un poco.
Las clases System.Net.Mail.MailMessage y System.Net.Mail.SmtpClient son excelentes y fácil de usar en forma directa

Código: (VB) [Seleccionar]
Public Class cMail

#Region "INTRO"

    'Clase creada por SoftMania
    'Aplicación: Clase para envíar correos

    'Declarar clase
    'Dim Correo As New cMail

    'Modo de implementación

    'Los nombres son intuitivos ----------------------------------------------------------------

    '   Correo.pServidorCorreo = "smtp.gmail.com"
    '   Correo.pPuertoCorreo = 587
    '   Correo.pHabilitarSsl = True                         'conexión segura si fuera requerido
    '   Correo.pUsuario = "correo_origen@xxxx.com"          'usuario del correo
    '   Correo.pPassWord = "xxxxx"                          'pass del correo
    '   Correo.pCodificacion = cMail.eCodificacion.UTF8
    '   Correo.pCorreoRemitente = "correo_origen@xxxx.com"  'el que envía :P
    '   Correo.pCorreoDestino = "correo_destino@xxxx.com"   'el que recine :P
    '   Correo.pApodo = "PEPE"
    '   Correo.pAsunto = "AQUI EL ASUNTO"
    '   Correo.pMensaje = "AQUI EL MENSAJE"
    '   Correo.pFormatoHtml = True
    '   Correo.pPrioridad = cMail.ePrioridad.NORMAL
    '   Correo.Enviar_correo()
    '-------------------------------------------------------------------------------------------
#End Region

#Region "DECLARACION"
    Dim sCorreoRemitente As String
    Dim sServidorCorreo As String = "smtp.gmail.com"
    Dim sPuertoCorreo As Integer = 587
    Dim sHabilitarSsl As Boolean = True
    Dim sCorreoDestino As String
    Dim sAsunto As String
    Dim sMensaje As String
    Dim sPrioridad As ePrioridad = ePrioridad.NORMAL
    Dim sCodificacion As eCodificacion = eCodificacion.UTF8
    Dim sUsuario As String
    Dim sPassWord As String
    Dim sApodo As String
    Dim sFormatoHtml As Boolean = True
    Enum eCodificacion
        UTF8
        UTF32
        UTF7
        ASCII
    End Enum
    Enum ePrioridad
        ALTA
        NORMAL
        BAJA
    End Enum
#End Region
#Region "PROPIEDADES"
    Public Property pFormatoHtml() As String
        Get
            Return sFormatoHtml
        End Get
        Set(ByVal value As String)
            sFormatoHtml = value
        End Set
    End Property
    Public Property pUsuario() As String
        Get
            Return sUsuario
        End Get
        Set(ByVal value As String)
            sUsuario = value
        End Set
    End Property
    Public Property pApodo() As String
        Get
            Return sApodo
        End Get
        Set(ByVal value As String)
            sApodo = value
        End Set
    End Property
    Public Property pPassWord() As String
        Get
            Return sPassWord
        End Get
        Set(ByVal value As String)
            sPassWord = value
        End Set
    End Property
    Public Property pPrioridad() As ePrioridad
        Get
            Return sPrioridad
        End Get
        Set(ByVal value As ePrioridad)
            sPrioridad = value
        End Set
    End Property
    Public Property pCodificacion() As eCodificacion
        Get
            Return sCodificacion
        End Get
        Set(ByVal value As eCodificacion)
            sCodificacion = value
        End Set
    End Property
    Public Property pMensaje() As String
        Get
            Return sMensaje
        End Get
        Set(ByVal value As String)
            sMensaje = value
        End Set
    End Property
    Public Property pAsunto() As String
        Get
            Return Me.sAsunto
        End Get
        Set(ByVal value As String)
            Me.sAsunto = value
        End Set
    End Property
    Public Property pCorreoDestino() As String
        Get
            Return Me.sCorreoDestino
        End Get
        Set(ByVal value As String)
            Me.sCorreoDestino = value
        End Set
    End Property
    Public Property pHabilitarSsl() As Boolean
        Get
            Return Me.sHabilitarSsl
        End Get
        Set(ByVal value As Boolean)
            Me.sHabilitarSsl = value
        End Set
    End Property
    Public Property pPuertoCorreo() As Integer
        Get
            Return Me.sPuertoCorreo
        End Get
        Set(ByVal value As Integer)
            Me.sPuertoCorreo = value
        End Set
    End Property
    Public Property pServidorCorreo() As String
        Get
            Return Me.sServidorCorreo
        End Get
        Set(ByVal value As String)

            Me.sServidorCorreo = value
        End Set
    End Property
    Public Property pCorreoRemitente() As String
        Get
            Return Me.sCorreoRemitente
        End Get
        Set(ByVal value As String)
            Me.sCorreoRemitente = value
        End Set
    End Property
#End Region
#Region "FUNCIONES"
    Public Function Enviar_correo() As Boolean
        Dim rCodificacion As System.Text.Encoding
        Dim rPrioridad As System.Net.Mail.MailPriority
        Dim vMensaje As New System.Net.Mail.MailMessage
        Dim ServSMTP As New System.Net.Mail.SmtpClient
        ServSMTP.Host = sServidorCorreo
        ServSMTP.Port = sPuertoCorreo
        ServSMTP.EnableSsl = sHabilitarSsl
        ServSMTP.Credentials = New System.Net.NetworkCredential(sUsuario, sPassWord)
        vMensaje.[To].Add(sCorreoDestino) 'Cuenta de Correo al que se le quiere enviar el e-mail
        Select Case sCodificacion
            Case eCodificacion.ASCII
                rCodificacion = System.Text.Encoding.ASCII
            Case eCodificacion.UTF32
                rCodificacion = System.Text.Encoding.UTF32
            Case eCodificacion.UTF7
                rCodificacion = System.Text.Encoding.UTF7
            Case Else
                rCodificacion = System.Text.Encoding.UTF8
        End Select
        Select Case sPrioridad
            Case ePrioridad.ALTA
                rPrioridad = Net.Mail.MailPriority.High
            Case ePrioridad.BAJA
                rPrioridad = Net.Mail.MailPriority.Low
            Case ePrioridad.NORMAL
                rPrioridad = Net.Mail.MailPriority.Normal
        End Select
        vMensaje.From = New System.Net.Mail.MailAddress(sCorreoRemitente, sApodo, rCodificacion)
        vMensaje.Subject = sAsunto
        vMensaje.SubjectEncoding = rCodificacion
        vMensaje.Body = sMensaje
        vMensaje.BodyEncoding = rCodificacion
        vMensaje.IsBodyHtml = sFormatoHtml
        vMensaje.Priority = rPrioridad
        Try
            ServSMTP.Send(vMensaje)
            Return True
        Catch ex As System.Net.Mail.SmtpException
            Return False
        End Try
    End Function
#End Region
End Class

Ando con poco tiempo, me despido colegas ...  salu2 a todos  ;)
Título: Re:CLASE PARA ENVIAR CORREOS
Publicado por: Visor en Diciembre 20, 2015, 12:27:10 pm
Excelente, practico y útil lo que envías, pronto subiré un tema de pregunta al respecto de los correos, te agradezco mucho por compartir