DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Communication / Gestion des emails
  • Présentation
  • Les différentes variables de la structure email
  • Accusé de réception d'email
  • Variables de la structure email faisant partie de l'entête de l'email
  • Quelles fonctions utilisent la structure email ?
  • Les valeurs de la variable Email.Erreur
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
Avertissement
La structure email est conservée par compatibilité, et pour une utilisation en PHP. Dans la majorité des cas, il est conseillé d'utiliser une variable de type Email.
Présentation
La structure Email est une structure prédéfinie du WLangage (aucune déclaration n'est nécessaire). Cette structure permet de :
  • créer un email,
  • récupérer le contenu des emails.
Pour remettre à zéro toutes les variables de la structure Email, utilisez la fonction EmailRaz.
La structure Email offre une méthode simple pour manipuler un email. Il est également possible d'utiliser les types avancés de manipulation des emails :
Ces types avancés permettent par exemple de :
WINDEV Mobile Remarque : La structure Email est utilisée par les fonctions EmailLanceAppli / EmailOuvreMessagerie pour initialiser :
  • AndroidWidget Android l'application native d'envoi d'emails de l'appareil Android.
  • iPhone/iPadWidget IOS l'application native d'envoi d'emails de l'iPhone ou de l'iPad.
  • Universal Windows 10 App l'application native d'envoi d'emails du mobile en mode Universal Windows 10 App.
Les différentes variables de la structure email
La structure est composée des membres suivants :
Remarque : Les limites données dans ce tableau concernent uniquement le client MS Exchange. Lors de l'utilisation du protocole POP3/SMTP, les limites sont celles données par le serveur.
Email.AccuséRéceptionBooléen (Faux par défaut).

En envoi, permet de demander un accusé de réception au destinataire. Le destinataire n'est pas obligé d'envoyer un accusé de réception.

En réception, permet de savoir si l'expéditeur a demandé un accusé de réception.
Si la confirmation de lecture est demandée, elle est prioritaire sur l'accusé de réception.
Ce membre n'est pas géré par Outlook sous Windows.
AndroidWidget AndroidiPhone/iPadWidget IOS Non disponible.
Email.AdresseExpéditeurChaîne de caractères contenant l'adresse à laquelle la réponse au message doit être envoyée (127 caractères maximum). Correspond au Reply-To.


Sous Outlook, cette variable est ignorée. Le nom du compte de la session en cours est utilisé pour remplir cette variable.

Sous Lotus, si l'expéditeur n'est pas renseigné, le login lotus est utilisé.
Remarque : Si l'adresse contient des caractères spéciaux ou des accents, utilisez la constante emailOptionEncodeEntête lors de l'envoi du message avec la fonction EmailEnvoieMessage.
AndroidWidget AndroidiPhone/iPadWidget IOS Non disponible.
Email.AttacheTableau de chaînes contenant le nom des fichiers attachés.
Le nombre de fichiers attachés est illimité.
Pour plus de détails sur la gestion des fichiers attachés, consultez
Email.CatégorieChaîne de caractères contenant une liste de mots-clé associés à l'email. Les mots-clés sont séparés par des points virgules.
Remarque : Si un mot-clé contient des caractères spéciaux ou des accents, utilisez la constante emailOptionEncodeEntête lors de l'envoi du message avec la fonction EmailEnvoieMessage.
AndroidWidget AndroidiPhone/iPadWidget IOS Non disponible.
Email.CCTableau de chaînes contenant les adresses des destinataires en copie : leur nom ne figure pas dans le mail reçu par les destinataires officiels (variable Email.Destinataire).
Les adresses sont limitées à 127 caractères.
Le nombre de destinataires non officiels est limité à 200. En mode SMTP, il est possible de dépasser cette limite, mais certains serveurs n'acceptent pas toujours les emails ayant un nombre important de destinataires.
Email.Cci (ou Bcc)Tableau de chaînes contenant les adresses des destinataires non officiels : leur nom ne figure pas dans le mail reçu par les destinataires officiels (variable Email.Destinataire).
Les adresses sont limitées à 127 caractères.
Le nombre de destinataires non officiels est limité à 200. En mode SMTP, il est possible de dépasser cette limite, mais certains serveurs n'acceptent pas toujours les emails ayant un nombre important de destinataires.
Email.CertificatVariable de type Certificat contenant le certificat à utiliser pour signer l'email avant son envoi.
LinuxUniversal Windows 10 AppAndroidWidget AndroidiPhone/iPadWidget IOS Non disponible.
Email.ConfidentialitéConstante de type Entier contenant le type de confidentialité de l'email. Les valeurs possibles sont les suivantes :
  • emailConfidentiel : Utilisé par exemple pour les emails envoyés à l'intérieur d'une société.
  • emailNormal (Valeur par défaut) : Aucune confidentialité.
  • emailPersonnel : Utilisé par exemple pour les emails personnels.
  • emailPrivé : Utilisé par exemple pour les emails privés.
Ce membre n'est pas géré sous Lotus Notes.
AndroidWidget AndroidiPhone/iPadWidget IOS Non disponible.
Email.ConfirmationLectureBooléen (Faux par défaut)

En envoi, permet de demander une confirmation de lecture au destinataire. Le destinataire n'est pas obligé d'envoyer une confirmation de lecture.

En réception, permet de savoir si l'expéditeur a demandé une confirmation de lecture.
Si la confirmation de lecture est demandée, elle est prioritaire sur l'accusé de réception.

Ce membre n'est pas géré sous Lotus Notes.
Ce membre est géré par Outlook pour Windows.
AndroidWidget AndroidiPhone/iPadWidget IOS Non disponible.
Email.DateRéceptionDate contenant la date de réception du message (128 caractères).
Si la session email a été ouverte grâce à la fonction :
  • EmailOuvreSession : le format de la date dépend de la langue utilisée par Windows sur le poste en cours.
  • EmailOuvreSessionOutlook : le format de la date correspond au format suivant : AAAAMMJJHHSSCCmmm. L'heure est au format UTC.
AndroidWidget AndroidiPhone/iPadWidget IOS Non disponible.
Email.DestinataireTableau de chaînes de caractères contenant les adresses des destinataires principaux. Les destinataires en copie et les destinataires non officiels ne sont pas pris en compte. Le nombre de destinataires est limité à 20. En mode SMTP, il est possible de dépasser cette limite, mais certains serveurs n'acceptent pas toujours les emails ayant un nombre important de destinataires.
Email.EnDehorsBooléen indiquant si un message a pu être lu. Email.EnDehors retourne Faux lorsqu'un message a été lu et Vrai lorsque le message n'a pas été lu.
AndroidWidget AndroidiPhone/iPadWidget IOS Non disponible.
Email.ErreurChaîne de caractères contenant le message d'erreur.
AndroidWidget AndroidiPhone/iPadWidget IOS Non disponible.
Email.ExpéditeurChaîne de caractères contenant l'adresse de l'expéditeur.
Sous Lotus, si l'expéditeur n'est pas renseigné, le login lotus est utilisé.
Remarque : Si l'expéditeur contient des caractères spéciaux ou des accents, utilisez la constante emailOptionEncodeEntête lors de l'envoi du message avec la fonction EmailEnvoieMessage.
AndroidWidget AndroidiPhone/iPadWidget IOS Non disponible.
Email.HTMLChaîne de caractères contenant le message avec une mise en forme HTML. Limité à 4 Go.
Ce membre est géré uniquement en POP3 / SMTP.
AndroidWidget AndroidiPhone/iPadWidget IOS Non disponible.
Email.IDIdentifiant unique de l'email (chaîne de caractères). Cet identifiant est constant pour toute la durée de vie de l'email. Cet identifiant est initialisé lors de l'envoi de l'email (fonction EmailEnvoieMessage).
Remarque : Si l'identifiant contient des caractères spéciaux ou des accents, utilisez la constante emailOptionEncodeEntête lors de l'envoi du message avec la fonction EmailEnvoieMessage.
Logiciel de messagerie Outlook et Lotus Notes uniquement
Universal Windows 10 AppAndroidWidget AndroidiPhone/iPadWidget IOS Non disponible.
Email.IdentifiantAttacheTableau de chaînes de caractères contenant l'identifiant des fichiers attachés inclus dans un message HTML.
Cette variable est renseignée uniquement lors de la réception d'un email.
AndroidWidget AndroidiPhone/iPadWidget IOS Non disponible.
Email.IdentifiantMailIdentifiant de l'email (mode asynchrone uniquement)
WEBDEV uniquement
Universal Windows 10 AppAndroidWidget AndroidiPhone/iPadWidget IOS Non disponible.
Email.MessageChaîne de caractères contenant le texte du message (avec une mise en forme texte simple). Limité à 2Go maximum (64Ko maximum dans le cas de Lotus Notes).
Remarque : Si le message contient des caractères spéciaux ou des accents, utilisez la constante emailOptionEncodeEntête lors de l'envoi du message avec la fonction EmailEnvoieMessage.
Email.MessageIDIdentifiant unique de l'email (chaîne de caractères). Cet identifiant est constant pour toute la durée de vie de l'email. Cet identifiant est utilisé pour suivre une conversation.

Lors d'un envoi, cette variable précise l'identifiant de l'email. Si cette variable correspond à une chaîne vide, l'identifiant sera fourni par le serveur. C'est à l'application qui génère l'identifiant de s'assurer de l'unicité de cet identifiant.
Cette variable n'est prise en compte que si la variable EmailOptionMessageID est utilisée dans la fonction EmailEnvoieMessage.

Lors de la réception, cette variable précise l'identifiant de l'email.
Cet identifiant est de la forme <Identifiant@domaine>. Par exemple : 1@192.168.2.210
Ce membre n'est pas géré sous Lotus Notes.
Ce membre n'est pas géré par Outlook sous Windows.
AndroidWidget AndroidiPhone/iPadWidget IOS Non disponible.
Email.NbAttacheEntier indiquant le nombre de fichiers attachés au message. Le nombre de fichiers attachés est illimité.
iPhone/iPadWidget IOS Non disponible.
Email.NbCcEntier correspondant au nombre de destinataires pour copie (limité à 200).
En mode SMTP, il est possible de dépasser cette limite, mais certains serveurs n'acceptent pas toujours les emails ayant un nombre important de destinataires.
Email.NbCci (ou NbBcc)Entier correspondant au nombre de destinataires non officiels (limité à 200).
En mode SMTP, il est possible de dépasser cette limite, mais certains serveurs n'acceptent pas toujours les emails ayant un nombre important de destinataires.
Email.NbDestinataireEntier contenant le nombre de destinataires du message. Le nombre de destinataires est limité à 20.
En mode SMTP, il est possible de dépasser cette limite, mais certains serveurs n'acceptent pas toujours les emails ayant un nombre important de destinataires.
Email.PrioritéConstante de type Entier contenant le type de priorité de l'email. Les valeurs possibles sont les suivantes :
  • emailPrioritéBasse : utilisé par exemple pour les emails très peu urgents.
  • emailPrioritéHaute : utilisé par exemple pour les emails urgents.
  • emailPrioritéNormale (Valeur par défaut) : utilisé par exemple pour les emails non urgents.
Attention : Ce membre est géré uniquement en POP3 / SMTP.
AndroidWidget AndroidiPhone/iPadWidget IOS Non disponible.
Email.RéférenceChaîne de caractères. Identifiant unique d'un ou de plusieurs emails de référence liés à la conversation en cours.
Ce membre n'est pas géré sous Lotus Notes.
Ce membre n'est pas géré par Outlook sous Windows.
AndroidWidget AndroidiPhone/iPadWidget IOS Non disponible.
Email.SignatureConstante de type Entier correspondant à l'état de la signature de l'email :
  • certificatExpiré : Signature valide mais certificat expiré.
  • certificatInvalide : Signature ou certificat invalide.
  • certificatNonFiable : Signature valide mais la racine de confiance du certificat est non fiable.
  • certificatOK : Signature et certificat fiables.
LinuxUniversal Windows 10 AppAndroidWidget AndroidiPhone/iPadWidget IOS Non disponible.
Email.SourceChaîne de caractères contenant la source du message reçu (sujet, expéditeur, destinataire, contenu, ...).
Ce membre n'est pas géré par Outlook sous Windows.
iPhone/iPadWidget IOSJava Non disponible.
Email.SujetChaîne de caractères contenant le sujet du message.
Remarque : Si le sujet contient des caractères spéciaux ou des accents, utilisez la constante emailOptionEncodeEntête lors de l'envoi du message avec la fonction EmailEnvoieMessage.
Email.TexteBrutChaîne de caractères contenant le texte brut du message. Cette variable est disponible en réception uniquement.
AndroidWidget AndroidiPhone/iPadWidget IOS Non disponible.

Gestion avancée des emails (mode SMTP uniquement) : Pour réaliser une description avancée des emails, il est possible d'accéder aux champs MIME Content-Type et Content-Description pour chaque fichier attaché fourni avec l'email.
Les variables correspondantes sont les suivantes :
Email.AttacheContentDescriptionMode SMTP uniquement

Tableau de chaînes correspondant au contenu du champ MIME Content-description de chaque fichier attaché. Le nombre de fichiers attachés est illimité.
Email.AttacheContentTypeMode SMTP uniquement

Tableau de chaînes correspondant au contenu du champ MIME Content-type de chaque fichier attaché. Le nombre de fichiers attachés est illimité.

Ces variables sont accessibles en lecture lors d'une réception et en écriture lors d'un envoi.
Remarques :
  • Si Email.Message et Email.HTML sont vides, et si le mail ne contient qu'un seul fichier attaché, les champs MIME content-Type et Content-description correspondront aux caractéristiques du fichier attaché.
  • Il est possible d'utiliser des caractères non latins dans les variables suivantes :
    • Email.Sujet
    • Email.Message
    • Email.Categorie
    • Email.AdresseExpediteur
    • Email.Expéditeur
    • Email.ID
    Dans ce cas, utilisez la constante emailOptionEncodeEntête lors de l'envoi du message avec la fonction EmailEnvoieMessage.

Accusé de réception d'email

Deux variables permettent de gérer l'accusé de réception d'un email : Email.ConfimationLecture et Email.AccuséRéception.
Certaines messageries reconnaissent uniquement Email.ConfirmationLecture, d'autres reconnaissent les deux variables et effectuent des traitements spécifiques en fonction de la variable utilisée.
Email.ConfirmationLecture est la variable la plus reconnue par les messageries récentes, Email.AccuséRéception étant de moins en moins reconnue.
Pour rester compatible avec les messageries utilisant la seconde variable, les 2 variables sont conservées et différenciées. Il est conseillé d'utiliser ces deux variables (la variable prioritaire étant Email.ConfirmationLecture).

Variables de la structure email faisant partie de l'entête de l'email

Lors de la lecture de l'entête de l'email, la structure email est automatiquement mise à jour en fonction du contenu de l'entête du message.
Les variables suivantes sont vides :
  • Email.Message
  • Email.Attache
  • Email.NbAttache
  • Email.HTML
  • Email.TexteBrut
Ces variables nécessitent une lecture complète du message (fonction EmailLitMessage). Les variables Email.Bcc et Email.NbBcc servent uniquement à envoyer des emails.
Quelles fonctions utilisent la structure email ?
Les fonctions utilisant la structure email sont :
Nom de la fonctionVariables utilisées
EmailEnvoieLors de l'envoi de l'email, seules les variables de la structure email nécessaires au protocole SMTP sont prises en compte. Les autres variables sont ignorées.
Variables utilisées :
Email.CC, Email.Destinataire, Email.Expéditeur, Email.NbCC, Email.NbDestinataire.
EmailEnvoieMessageVariables utilisées en écriture pour créer l'email :
Email.Attache, Email.Message, Email.Destinataire, Email.NbAttache, Email.NbDestinataire, Email.Sujet
EmailLitPremierVariables utilisées en lecture :
Email.AdresseExpéditeur, Email.Attache, Email.DateRéception, Email.EnDehors , Email.Message, Email.NbAttache et Email.Sujet
EmailLitSuivantVariables utilisées en écriture :
Email.AdresseExpéditeur, Email.Attache, Email.DateRéception, Email.EnDehors, Email.Message, Email.NbAttache et Email.Sujet
EmailMiseAJourEmail.Erreur
EmailOuvreSessionEmail.Erreur
EmailSupprimeMessageEmail.EnDehors
Les valeurs de la variable Email.Erreur
La variable Email.Erreur contient après chaque fonction le compte-rendu d'erreur de la fonction :
ValeurSignification
0Aucune erreur
1Abandon demandé par l'utilisateur
2Erreur inconnue
3Impossible de se connecter
4Disque plein
5Plus de mémoire disponible
6Accès interdit
8Trop de sessions ouvertes
9Trop de fichiers attachés (10 fichiers maximum)
10Trop de destinataires (20 destinataires maximum)
11Fichier attaché non trouvé
12Impossible d'ouvrir le fichier attaché
13Impossible d'écrire le fichier attaché
14Destinataire inconnu
17Message invalide
18Texte du message trop long
19Session invalide
21Adresse du destinataire ambiguë
23Erreur réseau
Liste des exemples associés :
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 (WINDEV) : Envoi d'emails
[ + ] Envoi d'emails avec WINDEV.
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.
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.
Version minimum requise
  • Version 11
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 09/05/2023

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