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à 😉