PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Envoi d'emails via un compte gmail
Envoi d'emails via un compte gmail
Débuté par NiceBel, 09 jan. 2025 19:29 - 6 réponses
Membre enregistré
527 messages
Posté le 09 janvier 2025 - 19:29
Bonjour,
j'envoyais des email normal depuis longtemps avec le code en bas ! depuis presque un moi je rencontre un pb d'envoi !! je partage mon code, svp si possible de m'aider à améliorer ce code afin de suivre les nouveautés google auth2 ..
Sujet est chaîne = " TEST"
Text_Html est chaîne = "Ceci est test !"

MaSession est un emailSessionSMTP
MaSession.Nom = SAI_nom_email_test1
MaSession.MotDePasse = SAI_mdp_email_test1
MaSession.AdresseServeur = SAI_serv_email_test1
MaSession.Port = SAI_port_email_test1
MaSession.Option = emailOptionSécuriséTLS
s est une chaîne
SI EmailOuvreSession(MaSession) ALORS
Trace("Session bien ouverte !")
SINON
s = ErreurInfo()
Erreur("Impossible de se connecter au serveur SMTP.", s)
VersPressePapier(s)
RETOUR
FIN
// 2 Le Message
MonMessage est un Email
Ajoute(MonMessage..Destinataire, "unemailexemple@yahoo.com")
MonMessage..Expediteur = gsNomPressing
MonMessage..Sujet = Sujet
MonMessage..HTML = Text_Html
MonMessage..Message = HTMLVersTexte(Text_Html)
// Envoyer
SI EmailEnvoieMessage(MaSession, MonMessage) = Faux ALORS
ToastAffiche("Rapport non envoyé !!"+RC+ErreurInfo(), toastCourt, cvMilieu, chCentre,RougeFoncé)
VersPressePapier("Rapport non envoyé !!"+RC+ErreurInfo())
Trace("Rapport non envoyé !!")
SINON
ToastAffiche("Rapport envoyé !!"+RC+ "Merci.", toastCourt, cvMilieu, chCentre,VertFoncé)
Trace("Rapport envoyé !!"+RC+ "Merci.")
FIN
// Clôture
EmailFermeSession(MaSession)
Membre enregistré
478 messages
Posté le 10 janvier 2025 - 08:03
il faut passer à oAuth
Membre enregistré
2 177 messages
Posté le 10 janvier 2025 - 08:43
idem :
https://doc.pcsoft.fr/fr-FR/?1000017332

--
Bon dev,
Jean-Pierre
Membre enregistré
527 messages
Posté le 10 janvier 2025 - 11:27
Merci beaucoup, je vais essayer !
Membre enregistré
527 messages
Posté le 10 avril 2025 - 01:43
Bonjour,
Même si j'ai bien reussi à me connecter via gglconnecte, l'email ne s'envoie toujours pas !
Votre aide svp, Merci bcp d'avance !

voici le code utilisé :
Trace("Bonjour: ")
Mail_params()
SI InternetConnecté() ALORS
Trace("0")
// Connexion utilisant le mode d'authentification "OAuth 2.0"
Cnx est une gglConnexion
Cnx.Email = "*********"
Cnx.ClientID = "***********"
Cnx.ClientSecret = "*********"
// Lors de la connexion, l'utilisateur devra valider les services utilisés
// (Consultez les exemples supplémentaires pour plus de détails)
SI GglConnecte(Cnx) = Faux ALORS
Erreur(ErreurInfo())

FIN

Trace("1")
sLeMsg est une chaîne = "Salut, ceci est test"

MaSession est un emailSessionSMTP
MaSession.Nom = gsNom_mail_envoi
MaSession.MotDePasse = gsMDP_mail_envoi
MaSession.AdresseServeur = gsAdresse_smtp
MaSession.Port = gsPort_smtp
MaSession.Option = emailOptionSécuriséTLS
SI PAS EmailOuvreSession(MaSession) ALORS
//Erreur("Impossible de se connecter au serveur SMTP.", ErreurInfo())
RENVOYER 0
FIN
// 2 Le Message
MonMessage est un Email
n est un entier = 1
Ajoute(MonMessage..Destinataire, "*********")
SI n=0 ALORS
EmailFermeSession(MaSession)
RENVOYER 0
FIN
MonMessage..Expediteur = gsNomboutique
MonMessage..Sujet = "Sujet"
MonMessage..HTML = sLeMsg
MonMessage..Message = HTMLVersTexte(sLeMsg)
//SI fFichierExiste(sPathFichier) = Vrai ALORS EmailChargeFichierAttaché(MonMessage,sPathFichier)
// Envoyer
SI EmailEnvoieMessage(MaSession, MonMessage) = Faux ALORS
//ToastAffiche("Email non envoyé !!", toastCourt, cvMilieu, chCentre,RougeFoncé) //+RC+ErreurInfo()
EmailFermeSession(MaSession)
RENVOYER 0
SINON
//ToastAffiche("Notifié !!", toastCourt, cvMilieu, chCentre,VertFoncé)
EmailFermeSession(MaSession)
RENVOYER 1
FIN

// Clôture
SINON
RENVOYER 0
FIN
Membre enregistré
27 messages
Posté le 11 avril 2025 - 19:32
NiceBel a écrit :
Bonjour,
Même si j'ai bien reussi à me connecter via gglconnecte, l'email ne s'envoie toujours pas !
Votre aide svp, Merci bcp d'avance !

voici le code utilisé :
Trace("Bonjour: ")
Mail_params()
SI InternetConnecté() ALORS
Trace("0")
// Connexion utilisant le mode d'authentification "OAuth 2.0"
Cnx est une gglConnexion
Cnx.Email = "*********"
Cnx.ClientID = "***********"
Cnx.ClientSecret = "*********"
// Lors de la connexion, l'utilisateur devra valider les services utilisés
// (Consultez les exemples supplémentaires pour plus de détails)
SI GglConnecte(Cnx) = Faux ALORS
Erreur(ErreurInfo())

FIN

Trace("1")
sLeMsg est une chaîne = "Salut, ceci est test"

MaSession est un emailSessionSMTP
MaSession.Nom = gsNom_mail_envoi
MaSession.MotDePasse = gsMDP_mail_envoi
MaSession.AdresseServeur = gsAdresse_smtp
MaSession.Port = gsPort_smtp
MaSession.Option = emailOptionSécuriséTLS
SI PAS EmailOuvreSession(MaSession) ALORS
//Erreur("Impossible de se connecter au serveur SMTP.", ErreurInfo())
RENVOYER 0
FIN
// 2 Le Message
MonMessage est un Email
n est un entier = 1
Ajoute(MonMessage..Destinataire, "*********")
SI n=0 ALORS
EmailFermeSession(MaSession)
RENVOYER 0
FIN
MonMessage..Expediteur = gsNomboutique
MonMessage..Sujet = "Sujet"
MonMessage..HTML = sLeMsg
MonMessage..Message = HTMLVersTexte(sLeMsg)
//SI fFichierExiste(sPathFichier) = Vrai ALORS EmailChargeFichierAttaché(MonMessage,sPathFichier)
// Envoyer
SI EmailEnvoieMessage(MaSession, MonMessage) = Faux ALORS
//ToastAffiche("Email non envoyé !!", toastCourt, cvMilieu, chCentre,RougeFoncé) //+RC+ErreurInfo()
EmailFermeSession(MaSession)
RENVOYER 0
SINON
//ToastAffiche("Notifié !!", toastCourt, cvMilieu, chCentre,VertFoncé)
EmailFermeSession(MaSession)
RENVOYER 1
FIN

// Clôture
SINON
RENVOYER 0
FIN


Bonjour,

Bien que de passer à l'Oauth 2.0 avec un compte GMail soit la chose recommandée, ça devrait continuer de fonctionner avec SMTP Auth si vous utilisez le mot de passe application (je suppose que c'est déjà fait et que celui-ci est toujours présent dans votre configuration de compte GMail.)

Quelle est le message d'erreur retourné par Windev lorsque ça ne fonctionne pas?
Membre enregistré
2 177 messages
Posté le 12 avril 2025 - 09:45
Bonjour,

Extrait de l'Aide en ligne :
Envoyer un email en utilisant le protocole SMTP
<Résultat> = EmailEnvoieMessage(<Session> [, <Email> [, <Options avancées>]])
<Résultat> : Booléen
Vrai si le message a été envoyé au serveur SMTP,
Faux dans le cas contraire. Pour connaître le libellé de l'erreur, utilisez la fonction ErreurInfo avec la constante errMessage.

Donc :
A peu près ce que tu avais écrit :
SI EmailEnvoieMessage(MaSession, MonMessage) = Faux ALORS
//ToastAffiche("Email non envoyé !!", toastCourt, cvMilieu, chCentre,RougeFoncé)
ErreurInfo(errMessage)
EmailFermeSession(MaSession)
RENVOYER 0
SINON
//ToastAffiche("Notifié !!", toastCourt, cvMilieu, chCentre,VertFoncé)
EmailFermeSession(MaSession)
RENVOYER 1
FIN

et ainsi nous connaîtrons le message d'erreur !

--
Bon dev,
Jean-Pierre
Message modifié, 12 avril 2025 - 09:46