Enviar libro activo adjunto Excel con gmail
Tengo un libro de excel el cual quiero mandarlo después de llenar una encuesta por medio de un botón, esto lo quiero hacer con una macro de Excel por medio de gmail, tengo este código pero me marca error en la linea que está en negrita-cursiva, alguien me podría corregir por favor, gracias
Sub Botón10_Haga_clic_en()
Dim MailExitoso As Boolean
'llamo a la funcion:
MailExitoso = EnviarMails_CDO()
'si me devuelve un resultado Verdadero, todo salió bien:
If MailExitoso = True Then
MsgBox "El mail fué enviado satisfactoriamente", vbInformation, "Informe"
End If
End Sub
Function EnviarMails_CDO() As Boolean
' Creo la variable de objeto CDO
Dim Email As CDO.Message
Dim Autentificion As Boolean
' ahora doy vida al objeto
Set Email = New CDO.Message
'indicamos los datos del servidor:
Email.Configuration.Fields(cdoSMTPServer) =
"smtp.gmail.com"
Email.Configuration.Fields(cdoSendUsingMethod) = 2
'indicamos el nro de puerto. Por defecto es el 25, pero gmail usa el 465. Hay otro '(que ahora no recuerdo) pero no me funcionaba... Por eso no lo usé mas y lo olvidé
Email.Configuration.Fields.Item _
(http://schemas.microsoft.com/cdo/configuration/smtpserverport) = CLng(465)
'aqui dejamos en claro si el servidor que usamos requiere o nó autentificación.
'1=requiere, 0=no requiere. Para gmail, entonces, 1
Email.Configuration.Fields.Item(http://schemas.microsoft.com/cdo/ & _
"configuration/smtpauthenticate") = Abs(1)
'segundos para el tiempo maximo de espera. Aconsejo no modificarlo:
Email.Configuration.Fields.Item _
(http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout) = 30
'aqui defino como True (verdadera) a la autentificación para el envío de mails.
Autentificacion = True
'ahora configuramos las opciones de login de gmail:
If Autentificacion Then
'nombre de usuario
Email.Configuration.Fields.Item _
(http://schemas.microsoft.com/cdo/configuration/sendusername) = "[email protected]"
'contraseña
Email.Configuration.Fields.Item _
(http://schemas.microsoft.com/cdo/configuration/sendpassword) = "password"
'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
Email.From = "[email protected]!"
' Asunto del mensaje
Email.Subject = "Encuesta"
' Cuerpo del mensaje
Email.TextBody = "Envio Encuesta"
Envío del archivo activo
Email.AddAttachment ActiveWorkbook.FullName
'antes de enviaractualizamos los datos:
Email.Configuration.Fields.Update
'colocamos un capturador de errores, por las dudas:
On Error Resume
Next
'enviamos el mail
Email.Send
'si el numero de error es 0 (o sea, no existieron errores en el proceso),
'hago que la función retorne Verdadero
If Err.Number = 0
Then
EnviarMails_CDO = True
Else
'caso contrario,muestro un MsgBox con la descripcion y nro de error
MsgBox "Se produjo el siguiente error: " & Err.Description, vbCritical, "Error nro " & Err.Number
End If
'destruyo el objeto, para liberar los recursos del sistema
If Not Email Is Nothing Then
Set Email = Nothing
End If
'libero posibles errores
On Error GoTo 0
End Function