Problème d'envoi de message SMTP depuis VBA
Bonsoir à tous,
J'ai développé il y a quelques années un bout de code VBA permettant d'envoyer des emails depuis une base de données Access en utilisant le protocole SMTP et mon adresse Gmail.
Je l'ai utilisé à plusieurs reprises et tout a fonctionné parfaitement jusqu'à aujourd'hui. Je devais simplement réactiver périodiquement le paramètre "Autoriser les applications moins sécurisées" dans mon compte Gmail car ce paramètre est désactivé après un certain temps par Google...
Aujourd'hui, après avoir réactivé le paramètre ci-dessus, j'ai tenté d'envoyer un email groupé et le message d'erreur suivant s'affiche :
Citation:
Erreur -2147220973 Le transport a échoué dans sa connexion au serveur
Mon adresse de messagerie et le mot de passe correspondant n'ont pas été modifiés depuis mon dernier envoi.
Voici le contenu de ma procédure VBA :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| 'Déclaration des variables
Dim objEmail As New CDO.message
'Composition du contenu du message
objEmail.From = [Mon nom complet]
objEmail.Bcc = [Destinataires en copie cachée]
objEmail.Subject = [Sujet]
objEmail.TextBody = [Corps du message]
objEmail.AddAttachment [Chemin de la pièce jointe]
'Paramétrage de lenvoi du message
With objEmail.Configuration.Fields
.Item(CdoConfiguration.cdoSendUsingMethod) = 2
.Item(CdoConfiguration.cdoSMTPAuthenticate) = 1
.Item(CdoConfiguration.cdoSendUserName) = [Mon adresse gmail complète]
.Item(CdoConfiguration.cdoSendPassword) = [Mot de passe de mon compte Gmail]
.Item(CdoConfiguration.cdoSMTPServer) = smtp.gmail.com
.Item(CdoConfiguration.cdoSMTPServerPort) = 465
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = "True"
.Update
End With
'Envoi du message
objEmail.Send |
Savez-vous comment résoudre ce problème ? Pour information, je ne peux malheureusement pas changer d'adresse de messagerie.
En vous remerciant pour votre aide, je vous souhaite une bonne soirée.
Cdt,
Philippe
1 pièce(s) jointe(s)
Le transport a échoué pendant sa connexion avec le serveur
Bonjour et merci pour votre réponse.
Malheureusement, j'obtiens toujours le même message d'erreur, quel que soit le serveur utilisé (Gmail, Hotmail ou Orange) :
Pièce jointe 586273
Il doit y avoir un blocage quelque part mais je ne sais pas où ? Serait-ce au niveau du pare-feu ?
Merci d'avance pour votre aide
Cordialement,
Philippe
Changement de serveur SMTP
Bonsoir,
Merci pour vos pistes de solution.
Dans l'intervalle, j'ai tenté d'utiliser tous les serveurs où je dispose d'une adresse de messagerie ainsi que celui mon fournisseur d'accès (Orange) et c'est ce dernier qui a fini par fonctionner.
Pour cela, j'ai dû paramétrer UseSSL sur True dans mon code. Le voici :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| 'Déclaration des variables
Dim objEmail As New CDO.message 'Objet Email (Microsoft CDO)
Dim i As Long 'Compteur de pièce jointe
'Paramétrer dans l'objet email l'adresse de l'expéditeur et celle du destinataire
objEmail.From = [Adresse expéditeur]
objEmail.To = [Adresse destataire]
'Paramétrer le sujet dans l'objet email
objEmail.Subject = Sujet
'Paramétrer la configuration de l'objet email
With objEmail.Configuration.Fields
.Item(CdoConfiguration.cdoSendUsingMethod) = 2
.Item(CdoConfiguration.cdoSMTPAuthenticate) = 1
.Item(CdoConfiguration.cdoSendUserName) = [Adresse email Orange]
.Item(CdoConfiguration.cdoSendPassword) = [Mot de passe Orange]
.Item(CdoConfiguration.cdoSMTPServer) = stmp.orange.fr
.Item(CdoConfiguration.cdoSMTPServerPort) = 587
'Désactiver UseSSL
.Item(CdoConfiguration.cdoSMTPUseSSL) = False
'Mettre à jour les paramètres dans l'objet email
.Update
End With
'Envoyer l'email par SMTP
objEmail.Send |
Merci à tous et à bientôt
Cordialement,
Philippe