DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Communication / Gestion des emails
  • Présentation
  • La gestion des emails
  • La double authentification pour les emails
  • Mode synchrone/asynchrone (WEBDEV)
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
Présentation
WINDEV, WEBDEV et WINDEV Mobile permettent de gérer directement les emails depuis vos applications. Envoi et réception d'emails sont simplifiés grâce à :
Remarque : Il est également possible de manipuler le contenu des emails sans les envoyer (fonctions EmailConstruitSource et EmailImporteSouce).
La gestion des emails
Plusieurs méthodes sont à votre disposition pour gérer les emails :
  • Gestion via les protocoles POP3, IMAP et SMTP :
    • le protocole POP3 : ce protocole de réception des emails est reconnu par tous les fournisseurs de service. Ce protocole vous permet de dialoguer directement avec le serveur, disponible chez votre fournisseur d'accès. Ce protocole permet de lister les messages reçus et de les lire.
    • le protocole IMAP : ce protocole de réception d'emails permet de laisser les emails sur le serveur dans le but de pouvoir les consulter de différents clients de messagerie ou webmail. De nombreuses caractéristiques associées aux emails peuvent être gérées.
    • le protocole SMTP : ce protocole est un protocole d'envoi des emails reconnu par tous les fournisseurs de service.
  • Gestion via Lotus Notes, Outlook ou MS Exchange :
    • l'API "Simple Mail API (appelé aussi SMAPI ou Simple MAPI)" : ce mode de gestion des emails est utilisé par la plupart des applications Microsoft et principalement le client MS Exchange.
    • le logiciel de messagerie Lotus Notes ou Outlook : grâce à ces logiciels, il est possible d'envoyer et de recevoir des emails.
Remarques :
  • WEBDEV - Code Navigateur WEBDEV permet également d'utiliser le logiciel de messagerie de l'internaute. Cette méthode simplifie l'envoi d'emails depuis un site WEBDEV. En effet, il suffit d'une fonction (EmailOuvreMessagerie) pour ouvrir ce logiciel sur le poste de l'internaute, en remplissant l'email.
  • LinuxJava Seuls les protocoles POP3 et SMTP sont disponibles.
  • AndroidWidget Android La gestion via Lotus Notes, Outlook ou MS Exchange n'est pas disponible.
  • Universal Windows 10 App Les connexions SSL ne sont pas gérées (cas d'un serveur POP3, SMTP ou IMAP sécurisé).
La double authentification pour les emails
De plus en plus de fournisseurs proposent l'utilisation de comptes email sécurisés (SMTP/IMAP) avec une double authentification.
Le principe est le suivant :
  • Connexion de type OAuth vers le fournisseur de la boîte mail : cette connexion fournit un token.
  • Utilisation du token qui devra être utilisé lors de la connexion aux boîtes IMAP ou SMTP.
Voici un exemple de code pouvant être utilisé :
// Exemple de connexion IMAP avec un compte Gmail
// et une double authentification
OAuthCnxGoogle est un OAuth2Paramètres
gMaSessionIMAP est une emailSessionIMAP

// Paramètres du serveur IMAP
gMaSessionIMAP.AdresseServeur = "imap.gmail.com"
gMaSessionIMAP.Option = optionTLS
gMaSessionIMAP.Port = "993"

// Paramètres de connexion OAuth
OAuthCnxGoogle.ClientID = "ID de l'application"
OAuthCnxGoogle.ClientSecret = "ID secret de l’application"
OAuthCnxGoogle.URLAuth = "https://accounts.google.com/o/oauth2/auth"
OAuthCnxGoogle.URLToken = "https://accounts.google.com/o/oauth2/token"
OAuthCnxGoogle.Scope = "https://mail.google.com/"
OAuthCnxGoogle.URLRedirection = "http://localhost:9000"
OAuthCnxGoogle.TypeRéponse = "code"

// Identification OAuth
gMaSessionIMAP.AuthToken = AuthIdentifie(OAuthCnxGoogle)
// Si l'identification a réussi, il faut se connecter à la boîte email.
SI gMaSessionIMAP.AuthToken <> Null ALORS
	SI EmailOuvreSession(gMaSessionIMAP) ALORS
	// Session ouverte
	SINON
	// Erreur d'ouverture de la session.
	FIN
SINON
	// Erreur d'authentification.
FIN
WEBDEV - Code Serveur
Mode synchrone/asynchrone (WEBDEV)
Par défaut, les fonctions Email sont bloquantes (sous Windows et Linux). Cela signifie que pendant leur exécution, aucun autre code ne peut être exécuté. Le programme continuera de s'exécuter uniquement lorsque l'exécution des fonctions Email sera terminée.
WEBDEV offre la possibilité de gérer les emails en mode asynchrone. Ce mode permet à vos sites d'envoyer des emails sans bloquer l'exécution des différents traitements.
Pour utiliser le mode asynchrone, il faut :
  1. Décocher l'option "Désactiver le spooler de mail" dans l'administrateur WEBDEV (onglet "Configuration").
  2. Activer le mode asynchrone à l'ouverture de la session SMTP (avec la fonction EmailOuvreSessionSMTP ou EmailOuvreSession).
  3. Tous les emails à envoyer seront transmis à un "spooler". Les emails sont ainsi mis en file d'attente avant d'être envoyés.
L'exécution des fonctions Email n'est alors plus bloquante pour le reste du programme. La fonction EmailEtat permet de connaître l'état d'un email.
Remarque : Si l'administrateur WEBDEV est fermé, le spooler d'emails est vidé : les emails en attente ne sont pas envoyés et sont enlevés du spooler.
Si vous cochez l'option "Désactiver le spooler de mail" alors que des emails sont en attente, ces emails ne seront pas perdus : l'administrateur continue de les envoyer, mais aucun nouveau mail ne sera accepté par le spooler.
Attention : Le mode asynchrone est utilisable uniquement lors de l'ouverture d'une session sur un serveur SMTP (fonction EmailOuvreSessionSMTP pour l'envoi d'emails ou fonction EmailOuvreSession). Le mode asynchrone est ignoré dans tous les autres cas.
Liste des exemples associés :
WD Mail Exemples complets (WINDEV) : WD Mail
[ + ] Cette application est un client mail complet développé en WINDEV. Il s'appuie sur les objets Email.
Ce client mail permet de récupérer et d'envoyer des emails en utilisant les protocoles POP, IMAP et SMTP.
Il est possible d'appliquer des filtres sur le courrier entrant.
L'écriture d'un email s'appuie sur le champ Editeur HTML.
L'affichage des emails utilise le champ Affichage HTML.
L'application permet de gérer plusieurs comptes emails différents.
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.
Envoi d'emails Exemples unitaires (WEBDEV) : Envoi d'emails
[ + ] Envoi d'un email avec WEBDEV.
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.
Les fonctions Email POP3 Exemples unitaires (WINDEV) : Les fonctions Email POP3
[ + ] Utilisation des fonctions Email pour gérer le protocole POP3.
Ce protocole sert à récupérer des emails depuis un serveur.
WD JavaMail Exemples didactiques (WINDEV) : WD JavaMail
[ + ] Cet exemple est un exemple Java permettant de de lire et envoyer des emails.
WD ProxyPOP3 Exemples complets (WINDEV) : WD ProxyPOP3
[ + ] Cet exemple présente un proxy POP3. Un proxy est un logiciel qui se connecte à un serveur à la place d'un autre.
On peut utiliser un proxy pour isoler un réseau local d'Internet dans un souci de sécurité par exemple.
Seule la machine abritant le proxy est reliée à Internet et les utilisateurs accèdent au serveur d'email à travers le proxy.
Dans l'exemple le proxy est utilisé pour archiver automatiquement dans une base HFSQL les emails récupérés.
De nombreuses extensions sont possibles pour cette application : filtrage automatique des spams, statistiques sur les 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.
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 28/06/2023

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