Visual Basic Foro
Programación => Visual Basic .NET / C# => Mensaje iniciado por: softmania en Octubre 17, 2013, 08:52:59 pm
-
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
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 ;)
-
Excelente, practico y útil lo que envías, pronto subiré un tema de pregunta al respecto de los correos, te agradezco mucho por compartir