[WD21] Envoyer un email (II)

Nous avions vu il y a presque un an comment envoyer un email à l’aide de Windev. Cette fois nous allons utiliser les structures mises à notre disposition pour faciliter la programmation. C’est surtout au niveau de la connexion qu’il va y avoir du changement.

Connexion

Nous allons utiliser une structure de type EmailSessionSMTP. On va alors passer toutes les options à l’aide des différentes propriétés, puis appeler la fonction EmailOuvreSession() en passant cette unique variable.

MaSession est un EmailSessionSMTP
MaSession..AdresseServeur = GP_Param_s_SMTPServer
MaSession..Port = GP_Param_i_SMTPPort
MaSession..Nom  = GP_Param_s_SMTPUsername
MaSession..MotDePasse = GP_Param_s_SMTPPassword
MaSession..Option = emailOptionSécuriséTLS
bOpenSessMail = EmailOuvreSession(MaSession)

Il faudra ensuite tester le booléen pour voir si la session est ouverte.

Préparer le message

Pour le coup, rien ne change. On construit le message à l’aide d’une variable de type Email.

MonMessage est un Email
MonMessage..AdresseExpéditeur = GP_Param_s_SMTPExpe
MonMessage..Expediteur  = "Nom <" + GP_Param_s_SMTPExpe + ">"
MonMessage..Sujet = "Reporting du 28/4/2016"
MonMessage..Message = "Contenu du message au format brut"

Il faut bien entendu spécifier les destinataires (à, Cc, Cci) :

Ajoute(MonMessage..Destinataire,sDesti)
Ajoute(MonMessage..Cc,GP_Param_s_SMTPCopyTo)
Ajoute(MonMessage..Cci,GP_Param_s_SMTPCopyTo2)

Ou une pièce jointe (par exemple un fichier PDF) :

monAttache..Nom=fExtraitChemin(sFile,fFichier+fExtension)
monAttache..Contenu=fChargeTexte(sFile)
monAttache..ContentType="application/pdf"
monAttache..ContentDescription="PDF Document"
Ajoute(MonMessage..Attache, monAttache)

Une fois que c’est fait, on peut envoyer…

Envoyer l’e-mail

Notre message est prêt : c’est parti ! Nous allons maintenant l’envoyer et puis fermer la session précédemment ouverte (voir plus haut). Nous allons utiliser la fonction EmailEnvoieMessage(). 2 paramètres doivent être passés en entrée : la structure contenant les infos de la session, et celle contenant les informations du message.

SI PAS EmailEnvoieMessage(MaSession,MonMessage) ALORS
 Erreur(ErreurInfo(errMessage))
SINON
 Utility.displayGreenToast("Email envoyé")
FIN

Ensuite, fermer la session…

EmailFermeSession(MaSession)

Et voilà 😉

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *