PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Email bien parti mais jamais arrivé
Email bien parti mais jamais arrivé
Iniciado por serge.guetta, 15,may. 2019 16:57 - 2 respuestas
Publicado el 15,mayo 2019 - 16:57
Bonjour à toutes et à tous,

Voici un code qui permet d'envoyer un émail dans sa plus simple expression.
Lors de l'exécution, il me répond OK pour la session et OK pour l'envoi.
Malheureusement, il n'arrive jamais.

Evidemment, l'adresse destinataire est active et reçoit des mails tous les jours par dizaine.
J'avais introduit aussi une adresse mail de copie pour voir si au moins celle-ci le recevait mais toujours rien.

Avant de poster cette demande et de vous solliciter, sachez que j'ai passé plusieurs jours pour des tests dans tous les sens.

Si votre œil averti clignote sur un point, n'hésitez pas à me le faire savoir.
Merci

VMASession est un emailSessionSMTP
VMASession.Nom = "contact@xxxxx.com"
VMASession.MotDePasse = "mdp"
VMASession.AdresseServeur = "mail.gandi.net"
VMASession.Port = 587
VMASession..Option = emailOptionSécuriséTLS

EmailChangeTimeOut(5)

SI EmailOuvreSession(VMASession) = Faux
Erreur("Envoi de mail impossible : absence de session",RC,ErreurInfo(errComplet))
Ferme
SINON
Info("session OK")
FIN

EmailRAZ()
Email.Expéditeur = "paul@free.fr"
Email.NbDestinataire = 1
Email.Destinataire[1] = "jacques@gmail.com"
Email.Sujet = "Le testttttttt"
Email.Message = "Bonjour"

SI EmailEnvoieMessage(VMASession)
Info("envoi ok")
SINON
Erreur("Echec d'envoi de ce mail",EmailMsgErreur(Email.Erreur),"",ErreurInfo(errMessage))
FIN

EmailFermeSession(VMASession)
Ferme
Publicado el 15,mayo 2019 - 17:37
Bonjour,

Voici le code que j'utilise pour envoyer via les serveurs de GMail :

gSessionSMTP est une emailSessionSMTP

EmailRAZ()
EmailParamètre(emailParamètreMode, 1)
gSessionSMTP..AdresseServeur = "smtp.gmail.com"
gSessionSMTP..Nom = "adresse_mail_expediteur@xxx.com"
gSessionSMTP..MotDePasse = "password"
gSessionSMTP..Port = 587
gSessionSMTP..Option = emailOptionSécuriséTLS

EmailOuvreSession(gSessionSMTP)
SI ErreurDétectée = Faux ALORS
Email.Expéditeur = "adresse_mail_expediteur@xxx.com"
Email.Destinataire[1] = "adresse_mail_destinataire@xxx.com"
Email.NbDestinataire = 1
Email.Sujet = "Sujet du mail"
Email.Message = "Texte du message"

EmailEnvoieMessage(gSessionSMTP)
EmailFermeSession(gSessionSMTP)
FIN


Je remarque dans ton code que les définitions du serveur (gSessionSMTP dans mon exemple) sont suivi d'un seul point alors que dans le mien, il y en a 2.

Ma variable Email.NbDestinataire se trouve après la déclaration du destinataire. Dans ton code, il se trouve avant.

Je ne dis pas que le problème vient de là mais si mon code peut t'éclairer...

Gaël L.
Miembro registrado
189 mensajes
Publicado el 16,mayo 2019 - 10:23
Bonjour Serge,

Ton mail est très certainement filtré par les serveurs de Google, tu envoies un mail à partir d'une adresse @free.fr avec un smtp gandi.
L'envoi de mails est de plus en plus compliqué à cause des filtres anti spam.
Tu devrais envoyer tes mails à partir d'un nom de domaine que tu gères complètement et regarder du côté des signatures DKIM et SPF.
L'utilisation d'un SMTP Mandrill ou Mailjet facilite la configuration, une IP de SMTP fixe est un plus si tu envoies beaucoup de mails.

Ton programme semble correct en dehors des 2 points comme dit Gaël, mais si WD ne dit rien, c'est qu'il a compris.

Jean-Marc