PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → OAuth2 et EmailEnvoi() ça fonctionne ?
OAuth2 et EmailEnvoi() ça fonctionne ?
Débuté par priv!w7yvr0M01znvy+_-, 02 oct. 2024 15:10 - 2 réponses
Posté le 02 octobre 2024 - 15:10
Bonjour,

Une personne à déjà utilisé OAuth2 et l'envoi des emails avec EmailOuvreSession()

A chaque fois j'ai l'erreur que se soit avec gmail ou microsoft l'erreur : "Le contenu de Email.Expediteur n'est pas reconnu par le serveur. La transaction est refusée."
EmailOuvreSession() retour vrai mais EmailEnvoieMessage() provoque l'erreur.

J'ai du louper quelques choses !

Merci

OAuthConnexion est un OAuth2Paramètres

OAuthConnexion..ClientID = "xxxxxxxxxxx"
OAuthConnexion..ClientSecret = "xxxxxxxxxxxx"
OAuthConnexion..URLAuth = "https://accounts.google.com/o/oauth2/auth"
OAuthConnexion..URLToken = "https://accounts.google.com/o/oauth2/token"
OAuthConnexion..Scope = "https://www.googleapis.com/auth/gmail.send"//"https://mail.google.com/"
OAuthConnexion..URLRedirection = "http://localhost:9000"
OAuthConnexion..TypeRéponse = oauth2TypeRéponseCode
OAuthConnexion..TypeAutorisation = taCodeAutorisation



gSessionSMTP est une emailSessionSMTP
gSessionSMTP.AdresseServeur = "smtp.gmail.com"
gSessionSMTP.Nom = ""
gSessionSMTP.MotDePasse = ""
gSessionSMTP.Port = 587
gSessionSMTP.Option = emailProtocoleSMTPS

MonToken est un AuthToken =AuthIdentifie(OAuthConnexion)
gSessionSMTP..AuthToken = MonToken

Trace(MonToken.Valide)
Trace(MonToken.DateExpiration)



// Si l'identification a réussit,
SI gSessionSMTP..AuthToken<>Null ALORS
SI EmailOuvreSession(gSessionSMTP) ALORS
// Session ouverte
Trace("OK session ouverte")

// Test envoi email
MonEmail est un Email
MonEmail.Expediteur = "xxxx@gmail.com"
MonEmail.Destinataire[1] = "yyyy@gmail.com"
MonEmail.Sujet = "test"
MonEmail.TexteBrut = "message de test"

SI EmailEnvoieMessage(gSessionSMTP,MonEmail) = Faux ALORS

// J'ai l'erreur :
// Le contenu de Email.Expediteur n'est pas reconnu par le serveur. La transaction est refusée.
// La dernière réponse du serveur SMTP est :
// <530-5.7.0 Authentication Required. For more information, go to
// 530 5.7.0 https://support.google.com/mail/?p=WantAuthError ffacd0b85a97d-37cd575dd04sm13716241f8f.114 - gsmtp

// Pour Outlook
// Le contenu de Email.Expediteur n'est pas reconnu par le serveur. La transaction est refusée.
// La dernière réponse du serveur SMTP est :
// <530 5.7.57 Client not authenticated to send mail. [SI2PR01CA0003.apcprd01.prod.exchangelabs.com 2024-10-02T11:19:41.]
// >


Erreur("Erreur lors de l'envoi ",ErreurInfo())
FIN

SINON
// Erreur d'ouverture de la session.
Erreur("session pas ouverte")

FIN
SINON
Erreur("Erreur d'authentification")
FIN
Membre enregistré
14 messages
Posté le 17 octobre 2024 - 12:53
Bonjour,

Je viens seulement de voir le sujet. Je ne sais pas si vous avez trouvé la solution. Chez moi cela fonctionne :

Pour les URL j'utilise :

Url Auth : https://accounts.google.com/o/oauth2/auth
Url token : https://oauth2.googleapis.com/token
Scope : https://mail.google.com/

Dans la configuration :
OAuthCnx est un OAuth2Paramètres
OAuthCnx.ClientID = MonClientID
OAuthCnx.ClientSecret = MonClientSecret
OAuthCnx.URLAuth = MonURLAuth
OAuthCnx.URLToken = MonURLToken
OAuthCnx.Scope = MonScope
OAuthCnx.URLRedirection = MonUrlRedirection
OAuthCnx.TypeRéponse = oauth2TypeRéponseCode

J'utilise directement la structure email. Pour envoyer l'email j'utilise cette syntaxe.

EmailEnvoieMessage(MaSessionSMTP,emailOptionMessageID)

Bien cordialement
Karine
Posté le 20 mai 2025 - 10:10
a écrit :
Bonjour,

Une personne à déjà utilisé OAuth2 et l'envoi des emails avec EmailOuvreSession()

A chaque fois j'ai l'erreur que se soit avec gmail ou microsoft l'erreur : "Le contenu de Email.Expediteur n'est pas reconnu par le serveur. La transaction est refusée."
EmailOuvreSession() retour vrai mais EmailEnvoieMessage() provoque l'erreur.

J'ai du louper quelques choses !

Merci

OAuthConnexion est un OAuth2Paramètres

OAuthConnexion..ClientID = "xxxxxxxxxxx"
OAuthConnexion..ClientSecret = "xxxxxxxxxxxx"
OAuthConnexion..URLAuth = "https://accounts.google.com/o/oauth2/auth"
OAuthConnexion..URLToken = "https://accounts.google.com/o/oauth2/token"
OAuthConnexion..Scope = "https://www.googleapis.com/auth/gmail.send"//"https://mail.google.com/"
OAuthConnexion..URLRedirection = "http://localhost:9000"
OAuthConnexion..TypeRéponse = oauth2TypeRéponseCode
OAuthConnexion..TypeAutorisation = taCodeAutorisation



gSessionSMTP est une emailSessionSMTP
gSessionSMTP.AdresseServeur = "smtp.gmail.com"
gSessionSMTP.Nom = ""
gSessionSMTP.MotDePasse = ""
gSessionSMTP.Port = 587
gSessionSMTP.Option = emailProtocoleSMTPS

MonToken est un AuthToken =AuthIdentifie(OAuthConnexion)
gSessionSMTP..AuthToken = MonToken

Trace(MonToken.Valide)
Trace(MonToken.DateExpiration)



// Si l'identification a réussit,
SI gSessionSMTP..AuthToken<>Null ALORS
SI EmailOuvreSession(gSessionSMTP) ALORS
// Session ouverte
Trace("OK session ouverte")

// Test envoi email
MonEmail est un Email
MonEmail.Expediteur = "xxxx@gmail.com"
MonEmail.Destinataire[1] = "yyyy@gmail.com"
MonEmail.Sujet = "test"
MonEmail.TexteBrut = "message de test"

SI EmailEnvoieMessage(gSessionSMTP,MonEmail) = Faux ALORS

// J'ai l'erreur :
// Le contenu de Email.Expediteur n'est pas reconnu par le serveur. La transaction est refusée.
// La dernière réponse du serveur SMTP est :
// <530-5.7.0 Authentication Required. For more information, go to
// 530 5.7.0 https://support.google.com/mail/?p=WantAuthError ffacd0b85a97d-37cd575dd04sm13716241f8f.114 - gsmtp

// Pour Outlook
// Le contenu de Email.Expediteur n'est pas reconnu par le serveur. La transaction est refusée.
// La dernière réponse du serveur SMTP est :
// <530 5.7.57 Client not authenticated to send mail. [SI2PR01CA0003.apcprd01.prod.exchangelabs.com 2024-10-02T11:19:41.]
// >


Erreur("Erreur lors de l'envoi ",ErreurInfo())
FIN

SINON
// Erreur d'ouverture de la session.
Erreur("session pas ouverte")

FIN
SINON
Erreur("Erreur d'authentification")
FIN



Bonjour, je fais un up, car j'ai le même problème, et rien à faire, le auth_token est bon, mais cela n'arrive pas à envoyer des mails