PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE


  • Propriétés spécifiques à la description des variables de type Email
  • Correspondance entre les propriétés et la norme RFC
  • Fonctions WLangage
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
Le type Email permet de manipuler le contenu d'un message électronique et les informations associées. Les caractéristiques de l'email peuvent être définies et modifiées à l'aide de différentes propriétés WLangage.
Ce type remplace et étend la structure Email en permettant, par exemple, de manipuler plusieurs messages en même temps.
Remarque : Pour plus de détails sur la déclaration de ce type de variable et l'utilisation des propriétés WLangage, consultez Déclaration d'une variable.
Exemple
// Envoi d'un email
 
// Construction du message
MonMessage est un Email
 
// Expéditeur
MonMessage.Expediteur = sExpediteur
 
// Destinataires
sDestinataire_1 est une chaîne = "aaa@gmail.com"
sDestinataire_2 est une chaîne = "bbb@gmail.com"
Ajoute(MonMessage.Destinataire, sDestinataire_1)
Ajoute(MonMessage.Destinataire, sDestinataire_2)
 
 
// Contenu du message
MonMessage.Sujet = SAI_Sujet
MonMessage.Message = RTFVersTexte(sNote)
MonMessage.HTML = RTFVersHTML(sNote)
 
// Ouverture une session SMTP
MaSession est un emailSessionSMTP
MaSession.AdresseServeur = sServeur
SI EmailOuvreSession(MaSession) = Faux ALORS RETOUR
 
// Envoi du message (la constante emailOptionEncodeEntête permet
// de prendre en compte les caractères accentués)
EmailEnvoieMessage(MaSession, MonMessage, emailOptionEncodeEntête)
 
// Fermeture de la session
EmailFermeSession(MaSession)
Remarques

Propriétés spécifiques à la description des variables de type Email

Les propriétés suivantes peuvent être utilisées pour manipuler une variable de type Email :
NomType manipuléEffet
AccuséRéceptionBooléenEn envoi, permet de demander un accusé de réception au destinataire (Vrai). 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 (Vrai) ou non (Faux). Si la confirmation de lecture est demandée, elle est prioritaire sur l'accusé de réception.
Cette propriété vaut Faux par défaut.
WINDEV Cette propriété n'est pas gérée par Outlook sous Windows.
AdresseExpéditeurChaîne de caractèresAdresse à laquelle la réponse au message doit être envoyée (127 caractères maximum). Correspond au Reply-To. Pour plus de détails, consultez Correspondance entre les propriétés et la norme RFC.
Remarque : Si l'adresse contient des caractères spéciaux, des accents, utilisez la constante emailOptionEncodeEntête lors de l'envoi du message avec la fonction EmailEnvoieMessage.
WINDEV Sous Outlook, cette variable est ignorée. Le nom du compte de la session en cours est utilisé pour remplir cette variable.
WINDEV Sous Lotus, si l'expéditeur n'est pas renseigné, le login Lotus est utilisé.
AdresseRetourErreurChaîne de caractèresAdresse de retour en cas d'erreur. Cette adresse est gérée par les protocoles POP3, IMAP et SMTP. Pour plus de détails, consultez Correspondance entre les propriétés et la norme RFC.
Remarque : Si l'adresse contient des caractères spéciaux, des accents, utilisez la constante emailOptionEncodeEntête lors de l'envoi du message avec la fonction EmailEnvoieMessage.
AttacheTableau de emailAttacheContient la description 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 emailAttache.
Remarque : Si la pièce jointe est remplie manuellement, il ne faut pas oublier de préciser la propriété Nom sinon l'image ne sera pas transmise dans l'email. Exemple :
oEmail.Attache[1].Contenu = fChargeBuffer(fRepDonnées() +
 ["\"] + "Email\" + sLogoSociété)
oEmail.Attache[1].ContentType = "image/gif"
oEmail.Attache[1].Nom = "logo.gif"
CatégorieChaîne de caractèresListe de mots-clés associés à l'email. Les mots-clés sont séparés par des points virgules.
Remarque : Si un des mots-clés contient des caractères spéciaux, des accents, utilisez la constante emailOptionEncodeEntête lors de l'envoi du message avec la fonction EmailEnvoieMessage.
CcTableau de chaînes de caractèresContient les adresses des destinataires en copie : leur nom figure dans l'email reçu par les destinataires officiels (propriété Destinataire).
Les adresses sont limitées à 127 caractères.
Le nombre de destinataires en copie 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.
CciTableau de chaînes de caractèresContient les adresses des destinataires non officiels : leur nom ne figure pas dans l'email reçu par les destinataires officiels (propriété 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.
CertificatCertificatCertificat utilisé pour signer l'email (entête, contenu et pièces jointes) avant son envoi.
LinuxUniversal Windows 10 App Cette propriété n'est pas disponible.
ConfidentialitéConstante de type EntierType 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.
Cette propriété n'est pas gérée sous Lotus Notes.
ConfirmationLectureBooléenEn envoi, permet de demander une confirmation de lecture au destinataire (Vrai). 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 (Vrai) ou non.
Si la confirmation de lecture est demandée, elle est prioritaire sur l'accusé de réception.
Par défaut, cette propriété vaut Faux.
WINDEV Cette propriété n'est pas gérée sous Lotus Notes.
Cette propriété est gérée par Outlook sous Windows.
DateRéceptionChaîne de caractères ou variable de type DateHeureDate de réception du message.
DestinataireTableau de chaînes de caractèresContient les adresses des destinataires principaux. 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.
EnDehorsBooléenIndique si un message a pu être lu sur le serveur :
  • Faux si le message a été lu.
  • Vrai si le message n'a pas été lu.
EntêteTableau de emailEntêteEntêtes de l'email.
ExpéditeurChaîne de caractèresAdresse de l'expéditeur. Cette adresse doit être une adresse email valide (et uniquement une adresse email). Pour plus de détails, consultez Correspondance entre les propriétés et la norme RFC.
Remarque : Si l'expéditeur contient des caractères spéciaux, des accents, utilisez la constante emailOptionEncodeEntête lors de l'envoi du message avec la fonction EmailEnvoieMessage.
WINDEV Sous Outlook, cette variable est ignorée. Le nom du compte de la session en cours est utilisé pour remplir cette variable.
WINDEV Sous Lotus, si l'expéditeur n'est pas renseigné, le login Lotus est utilisé.
HTMLChaîne de caractèresMessage avec une mise en forme HTML. Limité à 4 Go.
Cette propriété est gérée uniquement en POP3 / SMTP.
IDChaîne de caractèresIdentifiant unique de l'email. 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, des accents, utilisez la constante emailOptionEncodeEntête lors de l'envoi du message avec la fonction EmailEnvoieMessage.
WINDEV Cette propriété est gérée par les logiciels de messagerie Outlook et Lotus Notes uniquement.
IdentifiantEmailAsynchroneChaîne de caractèresIdentifiant de l'email (mode asynchrone uniquement).
WEBDEV uniquement
WINDEVLinuxUniversal Windows 10 App Cette propriété n'est pas disponible.
MessageChaîne de caractèresTexte du message (avec une mise en forme texte simple). Limité à 2 Go maximum (64Ko maximum dans le cas de Lotus Notes).
Remarque : Si le message contient des caractères spéciaux, des accents, utilisez la constante emailOptionEncodeEntête lors de l'envoi du message avec la fonction EmailEnvoieMessage.
MessageIDChaîne de caractèresIdentifiant unique de l'email. 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. L'application qui génère l'identifiant doit s'assurer de l'unicité de cet identifiant.
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
WINDEV Cette propriété n'est pas gérée sous Lotus Notes.
WINDEV Cette propriété n'est pas gérée par Outlook sous Windows.
PrioritéConstante de type EntierType 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.
RéférenceChaîne de caractèresIdentifiant unique d'un ou de plusieurs emails de référence liés à la conversation en cours.
WINDEV Cette propriété n'est pas gérée sous Lotus Notes.
WINDEV Cette propriété n'est pas gérée par Outlook sous Windows.
SignatureConstante de type EntierEtat 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.
Cette propriété est disponible en lecture seulement.
LinuxUniversal Windows 10 App Cette propriété n'est pas disponible.
SourceChaîne de caractèresContient la source du message reçu (sujet, expéditeur, destinataire, contenu, ...).
WINDEV Cette propriété n'est pas gérée par Outlook sous Windows.
SujetChaîne de caractèresSujet du message.
Remarque : Si le sujet contient des caractères spéciaux, des accents, utilisez la constante emailOptionEncodeEntête lors de l'envoi du message avec la fonction EmailEnvoieMessage.
TexteBrutChaîne de caractèresTexte brut du message. Cette variable est disponible en réception uniquement.

Remarque : Il est possible d'utiliser des caractères non latins dans les propriétés suivantes : Sujet, Message, Catégorie, AdresseExpéditeur, Expéditeur, ID. Dans ce cas, utilisez la constante emailOptionEncodeEntête lors de l'envoi du message avec la fonction EmailEnvoieMessage.

Correspondance entre les propriétés et la norme RFC

Version 23 et précédentes
A partir de la version 24
EnvoiRéceptionEnvoiRéception
From Propriété ExpéditeurRenseigne la propriété Expéditeur.Propriété ExpéditeurRenseigne la propriété Expéditeur.
Reply-ToPropriété AdresseExpéditeurRenseigne la propriété AdresseExpéditeur.Propriété AdresseExpéditeurRenseigne la propriété AdresseExpéditeur.
Return-PathPropriété AdresseExpéditeurRenseigne la propriété AdresseExpéditeur si le "Reply-To" est vide.Propriété AdresseRetourErreurRenseigne la propriété AdresseRetourErreur.
Return-Receipt-To (AccuséReception)Propriété AdresseExpéditeur si renseigné, sinon propriété Expéditeur.Met à Vrai la propriété AccuséRéception si la valeur reçue est non vide.Propriété AdresseExpéditeur si renseigné, sinon propriété Expéditeur. Met à Vrai la propriété AccuséRéception si la valeur reçue est non vide.
Disposition-Notification-To (ConfirmationLecture)Propriété AdresseExpéditeur si renseigné, sinon propriété Expéditeur. Met à Vrai la propriété ConfirmationLecture si la valeur reçue est non vide.Propriété AdresseExpéditeur si renseigné, sinon propriété Expéditeur. Met à Vrai la propriété ConfirmationLecture si la valeur reçue est non vide.

Fonctions WLangage

Les fonctions suivantes peuvent être utilisées pour manipuler une variable de type Email :
EmailChangeEtatChange l'état d'un email sur un serveur de messagerie.
EmailChargeFichierAttachéAjoute un fichier en attachement d'un email.
EmailCherchePremierRecherche un ou plusieurs emails selon des critères spécifiés dans le logiciel de messagerie (Outlook, logiciel de messagerie utilisant le protocole IMAP, ...).
EmailCherchePremierNotesRecherche un ou plusieurs emails selon des critères spécifiés, dans une base locale ou distante Lotus Notes ou Domino.
EmailConstruitSourceGénère le code source de l'email à envoyer à partir des variables actuellement présentes dans la structure Email ou dans une variable de type Email.
EmailCopieCopie un email présent dans un répertoire vers un autre répertoire d'un serveur IMAP.
EmailEnvoieMessageEnvoie un email selon le protocole utilisé (SMTP, MS Exchange, Lotus Notes, Outlook).
EmailImporteHTMLImporte dans la structure Email ou dans une variable de type Email le contenu d'un fichier HTML afin de l'envoyer par email.
EmailImporteSourceRemplit une variable de type Email à partir du contenu de sa propriété Source ou les différentes variables de la structure email à partir du contenu de la variable Email.Source.
EmailLitDernierLit le dernier email reçu selon le protocole utilisé (POP3 ou IMAP, MS Exchange, Lotus Notes ou Outlook).
EmailLitEntêteDernierLit l'entête du dernier email reçu selon le protocole utilisé (POP3 ou IMAP, Lotus Notes ou Outlook).
EmailLitEntêteMessageLit l'entête d'un email reçu selon le protocole utilisé (POP3 ou IMAP, Lotus Notes ou Outlook).
EmailLitEntêtePrécédentLit l'entête de l'email précédant l'email en cours selon le protocole utilisé (POP3 ou IMAP, Lotus Notes ou Outlook).
EmailLitEntêtePremierLit l'entête du premier email reçu selon le protocole utilisé (POP3 ou IMAP, Lotus Notes ou Outlook).
EmailLitEntêteSuivantLit l'entête de l'email suivant l'email en cours selon le protocole utilisé (POP3 ou IMAP, Lotus Notes ou Outlook).
EmailLitMessageLit un email reçu selon le protocole utilisé (POP3 OU IMAP, Lotus Notes ou Outlook).
EmailLitPrécédentLit l'email précédent l'email en cours selon le protocole utilisé (POP3 ou IMAP, MS Exchange, Lotus Notes ou Outlook).
EmailLitPremierLit le premier email reçu selon le protocole utilisé (POP3 ou IMAP, MS Exchange, Lotus Notes ou Outlook).
EmailLitSuivantLit l'email reçu suivant l'email en cours selon le protocole utilisé (POP3 ou IMAP, MS Exchange, Lotus Notes ou Outlook).
EmailRAZRé-initialise toutes les variables de la structure email ou d'une variable de type Email.
EmailRécupèreIndicateurRécupère les indicateurs définis sur un email d'une session IMAP.
EmailSupprimeMessagePermet de supprimer l'email en cours selon le protocole en cours (POP3, IMAP, MS Exchange, messagerie Lotus Notes ou Outlook).
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.
Version minimum requise
  • Version 15
Documentation également disponible pour…
Commentaires
Propriétés « Expéditeur » et « AdresseExpéditeur »
Selon mes essais, la propriété « Expéditeur » doit être utilisée pour identifier la provenance du courriel.

Et la propriété « AdresseExpéditeur » doit être utilisée pour l'adresse de retour lorsque celui qui reçoit le courriel, écrit une réponse.


Notes supplémentaires à l'intention de PcSoft :

1. La propriété « Expéditeur » ne conserve pas son accent sur la lettre « é » dans l'éditeur de code.

2. Est-ce qu'il serait possible de changer le nom d'une des deux propriétés afin d'éviter la confusion ?

Par exemple : « AdresseRetour » comme c'est le cas pour la propriété « AdresseRetourErreur ».


Merci!

Sylvain Larue
Sylvain Larue
18 juin 2021