El transporte falló en su conexión al servidor

abderrahim1234 Mensajes publicados 6 Estado Miembro -  
jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención   -
Hola,
Estoy haciendo una aplicación en VBA que envía correos desde una aplicación, me da

Error de ejecución - 2147220973 (80040213) El transporte falló en su conexión con el servidor.

Por favor, ayuden si alguien conoce la solución.

Sub send_Gmail()

Dim NewMail As CDO.Message
Dim mailConfiguration As CDO.Configuration
Dim fields As Variant
Dim msConfigURL As String

On Error GoTo errHandle

Set NewMail = New CDO.Message
Set mailConfiguration = New CDO.Configuration

mailConfiguration.Load -1

Set fields = mailConfiguration.fields

With NewMail
.Subject = "hola"
.From = "********.fr"
.To = "*****@*****.fr"
.CC = ""
.BCC = ""
.TextBody = "Este es un correo de prueba."
.AddAttachment "C:\Users\MiImagenExcel.jpg"
End With

With fields
.Item("http://schemas.microsoft.com/cdo/configuration/urlproxyserver") = "proxy.server:8080"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1

.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "****@**.fr"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "******"

.Update

End With

NewMail.Configuration = mailConfiguration
NewMail.Send

MsgBox "El correo electrónico ha sido enviado", vbInformation

exit_line:
'// Liberar memoria del objeto
Set NewMail = Nothing
Set mailConfiguration = Nothing

Exit Sub

errHandle:

MsgBox "Error: " & Err.Description, vbInformation

GoTo exit_line

End Sub

1 respuesta

  1. jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención   4 833
     
    Hola,

    En el futuro, gracias por utilizar las ETIQUETAS DE CÓDIGO.

    Aquí hay un código que debería funcionar
     Public Function send_email() Set cdomsg = CreateObject("CDO.message") With cdomsg.Configuration.Fields .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'método NTLM .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" .Item("http://schemas.microsoft.com/cdo/configuration/smptserverport") = 587 .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "mygmail@gmail.com" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "mypassword" .Update End With ' construir partes del correo With cdomsg .To = "somebody@somedomain.com" .From = "mygmail@gmail.com" .Subject = "el asunto del correo" .TextBody = "el cuerpo completo del mensaje va aquí. puedes querer crear una variable para almacenar el texto" .Send End With Set cdomsg = Nothing End Function 


    --
    Cordialmente,
    Jordane
    0
    1. Momen
       
      Gracias Jordane.

      Quiero intentarlo, pero no funciona en mi código.
      0
      1. jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención   4 833 > Momen
         
        ¿Has configurado tu cuenta de Google para permitir aplicaciones externas?
        ¿Has utilizado tu contraseña de Gmail o, como se recomienda, una contraseña de aplicación?
        Mira esto: https://support.google.com/accounts/answer/185833
        0