.
Es preciso aclarar que en este ejemplo se envía mail con correos basados en la web como Gmail, Hotmail o Yahoo, lo cual lo hace diferente a otros ejemplos publicados sobre como enviar mails con Excel, el motivo del post radicó en la cantidad de usuarios que hacen usos de Gmail, Hotmail y Yahoo.
Función se agrega en un módulo
Function SendMail_Gmail() As Boolean
‘Dimensiono variables
Dim Email As CDO.Message
Dim Autentificion As Boolean
‘Creo el objeto email
Set Email = New CDO.Message
‘Ponemos datos del servidor a usar
Email.Configuration.Fields(cdoSMTPServer) = «smtp.gmail.com»
Email.Configuration.Fields(cdoSendUsingMethod) = 2
‘Indicamos el número de puerto smtp
Email.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpserverport») = CLng(465)
‘Decimos si requiere o no autentificación 1 requiere, 0 no requiere
Email.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/» & «configuration/smtpauthenticate») = Abs(1)
‘Segundos de espera
Email.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout») = 30
‘Definición de verdadero para la autentificación
Autentificacion = True
‘Configuramos el ingreso al mail
If Autentificacion Then
‘nombre de usuario
Email.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/sendusername») = «micorreo1111xxx444xxxxx444xxx44x@gmail.com«
‘password
Email.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/sendpassword») = «111111»
‘si el servidor utiliza SSL (secure socket layer). en gmail: True
Email.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpusessl») = True
End If
‘ Una vez configurado nuestro servidor de correo tomados datos de excel para enviar el mail
‘Correo del destinatario
Email.To = Trim([«a» & fila].Value)
‘Dirección del remitente
Email.From = Trim([«b»& fila].Value)
‘ Asunto
Email.Subject = Trim([«c»& fila].Value)
‘ Mensaje
Email.TextBody = Trim([«d» & fila].Value)
‘Path del archivo attach
If [a2].Value <> vbNullString Then
Email.AddAttachment (Trim([«e»& fila].Value))
End If
‘Actualizamos datos antes del envio
Email.Configuration.Fields.Update
‘Controlo errores
On Error Resume Next
‘enviamos propiamente el mail
Email.Send
‘Si no hay errores la funcion es verdadero
If Err.Number = 0 Then
SendMail_Gmail = True
Else
‘Sale msgbox con descripción del error
MsgBox «Se produjo el siguiente error: » & Err.Description, vbCritical, «Error nro » & Err.Number
End If
‘Borro los objetos
If Not Email Is Nothing Then
Set Email = Nothing
End If
‘Controlo errores
On Error GoTo 0
End Function
Código que se agrega en un módulo
Public fila
Sub SendMail()
Dim fila As String
Dim Exito As Boolean
‘Evito movimientos de la pantalla
Application.ScreenUpdating = False
fila = 2
‘Bucle en caso de haber listado de direcciones de correo
While Sheets(«dire»).Cells(fila, 1) <> Empty
‘Si queremos enviar un solo mail va esta parte solamente
‘Dim Exito As Boolean
‘llamo a la funcion:
Exito = SendMail_Gmail()
‘Si es verdadero, es decir el mail se envio
If Exito = True Then
MsgBox «El mail se envió con éxito», vbInformation, «Informe»
End If
fila = fila + 1
Wend
Application.ScreenUpdating = True
End Sub
Te recomiendo que leas un excelente libro sobre Excel el que te ayudará manejar las planillas de cálculo, debes hacer click acá.
manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.
.
If this
post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.
Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends