Xtian_Québec
XLDnaute Occasionnel
Bonjour le forum, j'utilise depuis plusieurs années et ce, dans plusieurs fichiers, un code vba pour envoyer des courriels en utilisant Gmail. Plusieurs développeurs ont probablement le même problème que moi présentement à cause des changements que Google a effectué avec la sécurité et l'accès au compte google avec une applications tiers. Depuis le 30 mai 2022, le message d'erreur suivant s'affiche lors que le code tente d'envoyer le courriel:
Run-time error 2147220975 (80040211)
Le message n'a pas pu être envoyé vers le serveur SMTP. Le code d'erreur de transport était 0x80040217. la réponse du serveur était not available.
J'ai effectué quelques recherches sur le web et il semble que l'accès avec la validation en 2 étapes au compte Google (Utilisateur + mot de passe (MDP)) n'est plus suffisante pour accéder à notre compte Gmail avec une application tiers (vba-Excel). Quelques développeurs indiquent qu'ils ont remplacé le mot de passe Google dans leur code par un nouveau "mot de passe des applications"(MDPA) qu'ils ont configuré dans le compte Google.
J'ai essayé ce changement dans mon code
strComptePsw = "MDP" changé pour strComptePsw = "MDPA"
et j'ai le même message d'erreur...
Voici un exemple du code que j'utilise:
Sub ValiderEmail()
'VALIDATION ADRESSE EMAIL NOUVEAU CLIENT
Dim strEmailServer As String
Dim strCompteGmail As String
Dim strComptePsw As String
Dim strFrom As String
Dim strTo As String
Dim strCC As String
Dim strSujet As String
Dim strBody As String
strEmailServer = "smtp.googlemail.com"
strCompteGmail = "monCompte@gmail.com"
strComptePsw = "MDP"
strFrom = "monCompte@gmail.com"
strTo = "tonCompte@gmail.com"
strSujet = "Validation adresse de courriel"
strBody = "Bonjour," & "<br>" & _
"Ce courriel automatique a été généré pour valider votre adresse courriel." & "<br>" & _
"Merci de nous faire confiance, nous apprécions votre clientèle." & "<br>" & "<br>" & "<br>" & _
"Ma compagnie" & "<br>" & _
"123 Marue" & "<br>" & _
"Maville (Québec) A1A 1A1" & "<br>" & _
"800-123-4567"
MailEnvoi strEmailServer, True, strCompteGmail, strComptePsw, 465, 10, strFrom, strTo, strSujet, strBody, ""
GoTo Message
EnvoyerEmailErreur:
MsgBox "Le courriel n'a pas pu être envoyé..." & vbCrLf & "Demander de l'assistance technique au besoin", vbCritical, "Courriel de validation - Erreur."
Exit Sub
Message:
MsgBox "Le courriel a été envoyé...", vbOKOnly, "Courriel de validation."
End Sub
**********************************************************
'CODE POUR ENVOYER LE COURRIEL AVEC GMAIL
Public Sub MailEnvoi(Serveur, Identify, User, PassWord, Port, Delay, Expediteur, Dest, Objet, Body, Pj)
'VARIABLES
Dim msg
Dim Conf
Dim Config
Dim splitPj
Dim IsplitPj
'SET VARIABLES
Set msg = CreateObject("CDO.Message") 'pour la configuration du message
Set Conf = CreateObject("CDO.Configuration") ' pour la configuration de l'envoi
Set Config = Conf.Fields
'Configuration des parametres d'envoi
'(SMTP - Identification - SSL - Password - Nom Utilisateur - Adresse messagerie)
With Config
If Identify = True Then
.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/sendusername") = User
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = PassWord
End If
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = Port
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = Serveur
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = Delay
.Update
End With
With msg
Set .Configuration = Conf
.To = Dest
.From = Expediteur
.Subject = Objet
.HTMLBody = Body
If Pj <> "" Then
splitPj = Split(Pj & ";", ";")
For IsplitPj = 0 To UBound(splitPj)
If Trim("" & splitPj(IsplitPj)) <> "" Then
.AddAttachment Trim("" & splitPj(IsplitPj))
End If
Next
End If
'Envoyer le courriel
.Send 'envoi du message
End With
'Réinitialisation des variables
Set msg = Nothing
Set Conf = Nothing
Set Config = Nothing
End Sub
Je comprends que la solution se trouve probablement avec le "mot de passe pour application" mais je ne sais pas vraiment comment configurer le tout dans mon compte google ainsi que dans mes codes VBA s'il y a lieu. Je demande alors aux experts de ce forum de m'aider à solutionner ce problème et du même coup, aider plusieurs autres développeurs qui ont probablement le même problème depuis la mise à jour de Google le 30 mai dernier.
Encore une fois, je vous remercie à l'avance pour vos solutions.
@+++
Xtian_Quebec
Run-time error 2147220975 (80040211)
Le message n'a pas pu être envoyé vers le serveur SMTP. Le code d'erreur de transport était 0x80040217. la réponse du serveur était not available.
J'ai effectué quelques recherches sur le web et il semble que l'accès avec la validation en 2 étapes au compte Google (Utilisateur + mot de passe (MDP)) n'est plus suffisante pour accéder à notre compte Gmail avec une application tiers (vba-Excel). Quelques développeurs indiquent qu'ils ont remplacé le mot de passe Google dans leur code par un nouveau "mot de passe des applications"(MDPA) qu'ils ont configuré dans le compte Google.
J'ai essayé ce changement dans mon code
strComptePsw = "MDP" changé pour strComptePsw = "MDPA"
et j'ai le même message d'erreur...
Voici un exemple du code que j'utilise:
Sub ValiderEmail()
'VALIDATION ADRESSE EMAIL NOUVEAU CLIENT
Dim strEmailServer As String
Dim strCompteGmail As String
Dim strComptePsw As String
Dim strFrom As String
Dim strTo As String
Dim strCC As String
Dim strSujet As String
Dim strBody As String
strEmailServer = "smtp.googlemail.com"
strCompteGmail = "monCompte@gmail.com"
strComptePsw = "MDP"
strFrom = "monCompte@gmail.com"
strTo = "tonCompte@gmail.com"
strSujet = "Validation adresse de courriel"
strBody = "Bonjour," & "<br>" & _
"Ce courriel automatique a été généré pour valider votre adresse courriel." & "<br>" & _
"Merci de nous faire confiance, nous apprécions votre clientèle." & "<br>" & "<br>" & "<br>" & _
"Ma compagnie" & "<br>" & _
"123 Marue" & "<br>" & _
"Maville (Québec) A1A 1A1" & "<br>" & _
"800-123-4567"
MailEnvoi strEmailServer, True, strCompteGmail, strComptePsw, 465, 10, strFrom, strTo, strSujet, strBody, ""
GoTo Message
EnvoyerEmailErreur:
MsgBox "Le courriel n'a pas pu être envoyé..." & vbCrLf & "Demander de l'assistance technique au besoin", vbCritical, "Courriel de validation - Erreur."
Exit Sub
Message:
MsgBox "Le courriel a été envoyé...", vbOKOnly, "Courriel de validation."
End Sub
**********************************************************
'CODE POUR ENVOYER LE COURRIEL AVEC GMAIL
Public Sub MailEnvoi(Serveur, Identify, User, PassWord, Port, Delay, Expediteur, Dest, Objet, Body, Pj)
'VARIABLES
Dim msg
Dim Conf
Dim Config
Dim splitPj
Dim IsplitPj
'SET VARIABLES
Set msg = CreateObject("CDO.Message") 'pour la configuration du message
Set Conf = CreateObject("CDO.Configuration") ' pour la configuration de l'envoi
Set Config = Conf.Fields
'Configuration des parametres d'envoi
'(SMTP - Identification - SSL - Password - Nom Utilisateur - Adresse messagerie)
With Config
If Identify = True Then
.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/sendusername") = User
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = PassWord
End If
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = Port
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = Serveur
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = Delay
.Update
End With
With msg
Set .Configuration = Conf
.To = Dest
.From = Expediteur
.Subject = Objet
.HTMLBody = Body
If Pj <> "" Then
splitPj = Split(Pj & ";", ";")
For IsplitPj = 0 To UBound(splitPj)
If Trim("" & splitPj(IsplitPj)) <> "" Then
.AddAttachment Trim("" & splitPj(IsplitPj))
End If
Next
End If
'Envoyer le courriel
.Send 'envoi du message
End With
'Réinitialisation des variables
Set msg = Nothing
Set Conf = Nothing
Set Config = Nothing
End Sub
Je comprends que la solution se trouve probablement avec le "mot de passe pour application" mais je ne sais pas vraiment comment configurer le tout dans mon compte google ainsi que dans mes codes VBA s'il y a lieu. Je demande alors aux experts de ce forum de m'aider à solutionner ce problème et du même coup, aider plusieurs autres développeurs qui ont probablement le même problème depuis la mise à jour de Google le 30 mai dernier.
Encore une fois, je vous remercie à l'avance pour vos solutions.
@+++
Xtian_Quebec