PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Anomalie envoie de mail EmailOuvreSession avec Gmail
Anomalie envoie de mail EmailOuvreSession avec Gmail
Débuté par LC, 16 mai 2025 16:29 - 7 réponses
Membre enregistré
666 messages
Posté le 16 mai 2025 - 16:29
Bonjour à tous,
depuis quelques jours je n'arrive plus à envoyer des mails avec mon application (le client envoi par Gmail) avec EmailOuvreSession :
j'ai le message d'erreur : Session SMTP, accès refusé
les paramètres n'ont pas changé : smtp.gmail.com port 587, TLS
quelque chose à été modifié ? sécurité ?
c'est très urgent, si quelqu'un pouvais m'aider...
Merci d'avance
Membre enregistré
409 messages
Posté le 17 mai 2025 - 13:33
Salut, Gogole est ton zami et son IA aussi ...

Starting May 1, 2025, Gmail will no longer support "less secure apps" and will require the use of OAuth for third-party apps and devices accessing your account. This means you won't be able to use traditional username and password login for Gmail SMTP with apps like Microsoft Outlook or the iOS/MacOS mail app

--
If it works, don't touch it, don't look at it, AND don't fix it ! No patches, no SP ! JUST DONT FIX IT.
Membre enregistré
666 messages
Posté le 19 mai 2025 - 08:43
Michel GARCIA a écrit :
Salut, Gogole est ton zami et son IA aussi ...

Starting May 1, 2025, Gmail will no longer support "less secure apps" and will require the use of OAuth for third-party apps and devices accessing your account. This means you won't be able to use traditional username and password login for Gmail SMTP with apps like Microsoft Outlook or the iOS/MacOS mail app

--
If it works, don't touch it, don't look at it, AND don't fix it ! No patches, no SP ! JUST DONT FIX IT.


Merci pour ta réponse, tu peux m'aider pour utiliser OAuth ? j'ai regardé comment mette ne oeuvre cette authentification, j'ai vu qu'il faut un ClientID et un ClientSECRET, mais je ne sais pas comment il faut faire, car il faut déclarer une application ? j'ai un service qui tourne pour envoyer des mails, et je ne vois pas comment je peux le coder
Membre enregistré
497 messages
Posté le 19 mai 2025 - 09:36
Bonjour,

Si vous utilisez la suite payante Google Workspace, vous pouvez vous baser sur cette page du support Google : https://support.google.com/a/answer/176600…

Elle propose notamment de mettre en place le relais SMTP Google, qui peut ne pas demander de mot de passe (attention à le sécuriser tout de même en indiquant une seule IP fixe de provenance). Ou bien le système de "mot de passe d'application".
Membre enregistré
666 messages
Posté le 19 mai 2025 - 10:24
Merci à tous pour vos réponses, j'ai avancé un peu et j'essaie de tester avec mon propre compte Gmail. le but étant d'envoyer des mails via un service Windows, et donc pas d'interface ni fenêtre. J'ai donc créé un utilisateur dans la console de mon compte gmail afin d'obtenir un ClientID et un ClientSECRET. Ensuite j'ai créé un nom d'application (LC_mails.exe) toujours dans la console qui à priori servira à me connecter. Bon déjà, je ne vois pas trop comment ça marche ce nom d'application... c'est le nom de l'exe de mon application service ? Ensuite j'ai compris qu'il fallait sauvegarder un token afin justement de le réutiliser sans avoir à s'identifier en le restaurant. Comment s'identifier la première fois vu que c'est un service et donc pas d'interface ? Voici en dessous ce que j'ai codé :
// Définition des paramètres OAuth2
OAuthCnxGoogle est un OAuth2Paramètres
OAuthCnxGoogle..ClientID = "xxxxxxx"
OAuthCnxGoogle..ClientSecret = "xxxxxxxx"
OAuthCnxGoogle..URLAuth = "https://accounts.google.com/o/oauth2/auth"
OAuthCnxGoogle..URLToken = "https://accounts.google.com/o/oauth2/token"
OAuthCnxGoogle..Scope = "https://mail.google.com/"
OAuthCnxGoogle..URLRedirection = "http://localhost:9000"
OAuthCnxGoogle..TypeRéponse = "code"

// Authentification OAuth2
Token est un AuthToken
RestaureToken()
SI PAS Token..Valide ALORS
Token = AuthIdentifie(OAuthCnxGoogle)
SI Token..Valide ALORS
SauvegardeToken()
FIN
SINON
SI Token.DateExpiration < Maintenant() ALORS
Token = AuthRenouvelleToken(Token)
SI Token..Valide ALORS
SauvegardeToken()
FIN
FIN
FIN
SI PAS Token..Valide ALORS
Erreur("Echec de l'authentification ...")
RETOUR
FIN


voici le message d'erreur que j'ai depuis mon compte Gmail (attente d'authentification) :





Pouvez vous m'aider ? il doit y avoir quelques chose que je n'ai pas compris
Message modifié, 19 mai 2025 - 10:28
Membre enregistré
666 messages
Posté le 19 mai 2025 - 10:28


Posté le 02 juin 2025 - 16:30
LC wrote:
>



Bonjour

J'ai eu le même message cet apres midi, je suis allé changer ce parametre




Posté le 07 juillet 2025 - 08:34
LC a écrit :
Merci à tous pour vos réponses, j'ai avancé un peu et j'essaie de tester avec mon propre compte Gmail. le but étant d'envoyer des mails via un service Windows, et donc pas d'interface ni fenêtre. J'ai donc créé un utilisateur dans la console de mon compte gmail afin d'obtenir un ClientID et un ClientSECRET. Ensuite j'ai créé un nom d'application (LC_mails.exe) toujours dans la console qui à priori servira à me connecter. Bon déjà, je ne vois pas trop comment ça marche ce nom d'application... c'est le nom de l'exe de mon application service ? Ensuite j'ai compris qu'il fallait sauvegarder un token afin justement de le réutiliser sans avoir à s'identifier en le restaurant. Comment s'identifier la première fois vu que c'est un service et donc pas d'interface ? Voici en dessous ce que j'ai codé :
// Définition des paramètres OAuth2
OAuthCnxGoogle est un OAuth2Paramètres
OAuthCnxGoogle..ClientID = "xxxxxxx"
OAuthCnxGoogle..ClientSecret = "xxxxxxxx"
OAuthCnxGoogle..URLAuth = "https://accounts.google.com/o/oauth2/auth"
OAuthCnxGoogle..URLToken = "https://accounts.google.com/o/oauth2/token"
OAuthCnxGoogle..Scope = "https://mail.google.com/"
OAuthCnxGoogle..URLRedirection = "http://localhost:9000"
OAuthCnxGoogle..TypeRéponse = "code"

// Authentification OAuth2
Token est un AuthToken
RestaureToken()
SI PAS Token..Valide ALORS
Token = AuthIdentifie(OAuthCnxGoogle)
SI Token..Valide ALORS
SauvegardeToken()
FIN
SINON
SI Token.DateExpiration < Maintenant() ALORS
Token = AuthRenouvelleToken(Token)
SI Token..Valide ALORS
SauvegardeToken()
FIN
FIN
FIN
SI PAS Token..Valide ALORS
Erreur("Echec de l'authentification ...")
RETOUR
FIN


voici le message d'erreur que j'ai depuis mon compte Gmail (attente d'authentification) :





Pouvez vous m'aider ? il doit y avoir quelques chose que je n'ai pas compris



Bonjour,

Voici peut être quelques informations utiles.

Nous avons un programme d'envoi de mails qui existent depuis environ 20 ans, écrit bien entendu avec Windev et qui utilise SMTP.
Nous avons tenté de mettre en place l'authentification Oauth chez Microsoft sans y parvenir. Comme on a un abonnement a l'assistance direct Pcsoft, je leur ai envoyé le projet ainsi que l'accès a Azur pour qu'ils essaient de voir ce qui ne va pas mais ils n'y sont pas arrivé.

En fin de compte, il existe une solution assez simple pour contourner le problème.
C'est la mise en place d'un mot de passe d'application qui va remplacer le mot de passe de l'utilisateur (le mot de passe rattaché à l'adresse mail de l'utilisateur)
Ca existe chez Microsoft et chez Gmail.

Le but de ce mot de passe est de permettre aux machines comme les photocopieurs et les fax qui envoient les documents par E-mail de pouvoir continuer à fonctionner alors qu'il n'intègre pas la technologie Oauth.

Pour répondre à la question de LC qui écrit "...Bon déjà, je ne vois pas trop comment ça marche ce nom d'application...", c'est juste un nom que vous donnez sur le portail pour que plus tard, si vous devez modifier quelque chose. vous puissiez retrouver vos éléments. Mais il n'y a pas de contrôle entre le nom de votre application et le nom que vous donnez sur le portail.

Une fois ce mot de passe d'application mis en place, il suffit de mettre se mot de passe à la place du mot de passe utilisateur dans votre messagerie et ca fonctionne sans avoir besoin d'utiliser Oauth.

Question : etes vous parvenu à utiliser Oauth chez Microsoft ?

Cordialement,
Christian