DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Communication / Gestion des emails
  • Mode asynchrone
  • Jauge de progression
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Envoie un email :
  • soit en utilisant le protocole SMTP : l'email est directement envoyé au serveur. L'envoi effectif est réalisé lors de la déconnexion du serveur SMTP (c'est-à-dire lors de la fermeture de la session).
  • WINDEVWEBDEV - Code Serveur soit par l'intermédiaire du client MS Exchange : l'email est placé dans la boîte d'envoi de MS Exchange. Pour envoyer réellement l'email, utilisez la fonction EmailMiseAJour.
  • WINDEVWEBDEV - Code Serveur soit par l'intermédiaire du logiciel Lotus Notes : l'email est placé dans la boîte d'envoi du logiciel de messagerie. L'email est automatiquement envoyé par le spooler de Domino.
    Attention : Lotus Notes doit être installé en mode connecté et non en mode local.
  • WINDEVWEBDEV - Code Serveur soit par l'intermédiaire du logiciel Outlook : l'email est placé dans la boîte d'envoi du logiciel de messagerie. L'envoi effectif de l'email est réalisé à partir de Outlook. Pour plus de détails, consultez Accéder à Outlook.
Attention : Avant d'envoyer l'email, il est nécessaire de :
Universal Windows 10 AppAndroidWidget AndroidiPhone/iPadJava Dans cette version, il est possible d'envoyer un email uniquement en utilisant le protocole SMTP.
PHP Dans cette version, il est possible d'envoyer un email uniquement en utilisant le protocole SMTP. Avant d'envoyer cet email, il n'est pas nécessaire d'ouvrir une session avec la fonction EmailOuvreSession. Pour que l'envoi de l'email soit effectif, il faut que le serveur SMTP à utiliser soit fourni au moteur PHP. Il faut l'indiquer dans l'entrée "SMTP =" du fichier PHP.INI.
WINDEVWEBDEV - Code ServeurEtats et RequêtesUniversal Windows 10 AppAndroidWidget AndroidiPhone/iPadCode Utilisateur (MCU)Ajax Envoi d'un message par SMTP
// Ouverture d'une session SMTP
MaSession est un emailSessionSMTP
MaSession.AdresseServeur = "smtp.masociete.fr"
EmailOuvreSession(MaSession)
 
// Construction d'un email
MonMessage est un Email
MonMessage.Expediteur = "service_commande@masociete.fr"
Ajoute(MonMessage.Destinataire, "client@societe.com")
MonMessage.Sujet = SAI_SujetEmail
MonMessage.Message = SAI_TexteEmail
 
// Envoi du message
EmailEnvoieMessage(MaSession, MonMessage)
PHP Envoi d'un message depuis un site WEBDEV PHP
// Note : l'ouverture d'une session SMTP n'est pas nécessaire
 
// Construction d'un email (utilisation de la structure Email)
Email.Expéditeur = "service_commande@masociete.fr"
Email.NbDestinataire = 1
Email.Destinataire[1] = "client@societe.com"
Email.Sujet = SAI_SujetEmail
Email.Message = SAI_TexteEmail
 
// Envoi du message
EmailEnvoieMessage()
Syntaxe

Envoyer un email en utilisant le protocole SMTP Masquer les détails

<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.
Java En cas d'erreur, il faut tester le contenu de la variable Email.Erreur.
<Session> : Chaîne de caractères ou variable de type emailSessionSMTP
Identifie la session d'un utilisateur. Correspond :
PHP Ce paramètre n'est pas disponible.
<Email> : Variable de type Email optionnelle
Nom de la variable de type Email correspondant à l'email à envoyer. Si ce paramètre n'est pas spécifié, les informations contenues dans la structure Email sont utilisées.
JavaPHP Ce paramètre n'est pas disponible.
<Options avancées> : Constante optionnelle de type Entier
Combinaison des constantes suivantes :
emailOptionEncodeEntêteEncode les entêtes du message en Quoted-Printable si nécessaire.
Par défaut, les entêtes des messages ne sont pas encodés. Cette constante évite la réception de messages avec des accents mal décodés.
emailOptionMessageIDTient compte de la variable Email.MessageID pour générer l'email. Si cette variable est absente, cette option est ignorée.
Cette option est une option avancée.
emailOptionRéférenceTient compte de la variable Email.Référence pour générer l'email. Si cette variable est absente, cette option est ignorée.
Cette option est une option avancée.
PHP Ce paramètre n'est pas disponible.
WINDEVWEBDEV - Code ServeurEtats et RequêtesCode Utilisateur (MCU)Ajax

Envoyer un email par l'intermédiaire de MS Exchange, Lotus Notes ou Outlook Masquer les détails

<Résultat> = EmailEnvoieMessage(<Id session> [, <Email> [, <Afficher> [, <Type>]]])
<Résultat> : Booléen
  • Vrai si le message a été placé dans la boîte d'envoi de MS Exchange, de Lotus Notes ou de Outlook,
  • Faux dans le cas contraire. Pour connaître le libellé de l'erreur, utilisez la fonction ErreurInfo avec la constante errMessage.
<Id session> : Entier ou variable de type emailSessionOutlook
Identifie la session email en cours. Ce paramètre peut être :
<Email> : Variable de type Email optionnelle
Nom de la variable de type Email correspondant à l'email à envoyer.
Si ce paramètre n'est pas spécifié, les informations contenues dans la structure Email sont utilisées.
<Afficher> : Booléen optionnel
  • Vrai pour afficher le message dans une boîte de dialogue avant de l'envoyer,
  • Faux (par défaut) pour ne pas afficher de boîte de dialogue.
Ce paramètre est pris en compte uniquement si la session email a été ouverte à l'aide de la fonction EmailOuvreSession, en utilisant la syntaxe MS Exchange avec un nom de profile. Dans les autres cas, la boîte de dialogue ne s'affiche pas.
Remarque : Ce paramètre n'est pas disponible pour Lotus Notes.
<Type> : Chaîne de caractères optionnelle
Décrit le type de message à envoyer. Par défaut, <Type> = "IPM" (Inter Personal Message).
Remarques
WEBDEV - Code ServeurAjax

Mode asynchrone

Si l'ouverture de session a été effectuée en mode asynchrone (fonctions EmailOuvreSession et EmailOuvreSessionSMTP), la fonction EmailEnvoieMessage crée un identifiant pour chaque email envoyé.
L'identifiant de l'email est stocké dans la variable Email.IdentifiantMail et pourra être utilisé avec la fonction EmailEtat afin de connaître l'état d'envoi actuel de l'email (envoyé, en cours, ...).
Traitement des erreurs en mode asynchrone : La fonction EmailEnvoieMessage renvoie Vrai si l'email est placé dans le spooler d'emails, Faux si il n'est pas possible de contacter le spooler. Pour savoir si l'email a été envoyé, il est nécessaire d'utiliser la fonction EmailEtat.
WINDEVEtats et RequêtesUniversal Windows 10 AppAndroidWidget AndroidiPhone/iPadCode Utilisateur (MCU)

Jauge de progression

Pour suivre la progression de l'envoi de l'email, utilisez la fonction EmailJauge.
Liste des exemples associés :
Envoi d'un email au format HTML Exemples unitaires (WINDEV) : Envoi d'un email au format HTML
[ + ] Utilisation de la fonction WLangage "EmailImporteHTML".
Cette fonction permet d'importer un fichier HTML directement dans la structure email. Cela permet notamment d'ajouter des images simplement dans des emails.
Envoi d'emails Exemples unitaires (WINDEV) : Envoi d'emails
[ + ] Envoi d'emails avec WINDEV.
WD Mailing par emails Exemples didactiques (WINDEV) : WD Mailing par emails
[ + ] Cet exemple illustre la possibilité d'envoyer un mailing par eMails avec WINDEV.

Cet exemple permet de saisir l'objet du message, son contenu et ses pièces jointes.
L'utilisateur doit ensuite sélectionner les clients auxquels le message doit être envoyé.
La fonction WLangage EMailEnvoieMessage() permet ensuite d'envoyer tout simplement le message saisi à chacun des clients sélectionnés.
Mise en Å“uvre technique :
Un serveur de mail compatible POP3/SMTP doit obligatoirement être accessible depuis le poste sur lequel s'exécute l'application.
WD JavaMail Exemples didactiques (WINDEV) : WD JavaMail
[ + ] Cet exemple est un exemple Java permettant de de lire et envoyer des emails.
WW_CMS Exemples complets (WEBDEV) : WW_CMS
[ + ] Cet exemple est un exemple de CMS (Content Management System).
C'est un site de gestion de contenu, typiquement un site d'affichage d'articles.

Cet exemple est découpé en 2 parties :
- Une partie AWP pour la partie qui doit être référencée
- Une partie WEBDEV Classique pour la partie administration

Note :
Pour que certaines fonctionnalités de l'exemple fonctionnent (l'envoi d'emails par exemple) il est nécessaire de modifier les paramètres afin de les adapter à votre configuration.
Ces paramètres sont stockés sous forme de constantes définies dans le code du projet.
Composante : wd290com.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Evolution des systèmes de messagerie.
Apparemment une révolution est en marche chez les fournisseurs de compte de messagerie. Gmail demande la double authentification et Outlook (.com ou .fr) suit.
Merci à Duk pour son message du 04/8/22 sur le forum :
"En septembre Microsoft n'acceptera plus l'authentification de base pour l'envoi de mail Outlook via SMTP :
https://docs.microsoft.com/fr-fr/exchange/clients-and-mobile-in-exchange-online/deprecation-of-basic-authentication-exchange-online ".
SFR précise : "Le Webmail SFR ne supporte plus les protocoles SSL et TLS 1.0 et 1.1. Nous demandons à nos utilisateurs, qui utilisent des services de messagerie, de modifier les paramétrages de connexion pour passer aux protocoles TLS 1.2 ou TLS 1.3."
Il est fort probable que les autres opérateurs suivent.
Que va nous proposer PcSoft ?
SR (SFC)
15 sep. 2022
Clarté message d'erreur
Nous sommes également confrontés au message d'erreur : "Des erreurs de sécurité ont été détectées pendant la mise en place de la communication". Un message plus clair serait le bienvenu.
ICS01
28 sep. 2021
détail des erreurs
Bonjour,

Effectivement cette fonction manque cruellement d'information en cas d'échec. Nous avons un simple message texte. Face à un fournisseur je suis incapable de lui fournir des informations détaillées sur le problème rencontré. Pour un développeur, cela fait pas sérieux de ne pas pouvoir indiquer plus d'informations que ça.
Je me retrouve dans un cas d'échec, ça ne marche pas mais je n'ai que le message : Des erreurs de sécurité ont été détectées pendant la mise en place de la communication.
Que voulez-vous faire avec seulement cette information ...
Waric
26 juin 2019

Dernière modification : 21/06/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale