PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

  • Principe
  • Les différentes étapes
  • Ecrire un email avec une variable de type Email
  • Ecrire un email avec la structure Email
  • Exemples
  • Exemple utilisant la fonction EmailImporteHTML
  • Exemple utilisant la structure Email
  • Utilisation du format EML pour personnaliser des emails
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Principe
Il existe deux méthodes pour gérer les emails en WLangage :
  • la structure Email qui permet de manipuler globalement un message de façon simple.
    Dans ce cas, pour écrire un email, il est nécessaire d'utiliser les différentes variables de la structure Email.
  • Versions 15 et supérieures
    le type avancé Email qui offre des fonctionnalités évoluées (databinding, sérialisation, instances multiples, etc.).
    Dans ce cas, pour écrire un email, il est nécessaire de déclarer et initialiser une variable de type Email. Les pièces jointes éventuelles seront déclarées dans des variables de type emailAttache, puis ajoutées à la propriété ..Attache de la variable Email.
    Nouveauté 15
    le type avancé Email qui offre des fonctionnalités évoluées (databinding, sérialisation, instances multiples, etc.).
    Dans ce cas, pour écrire un email, il est nécessaire de déclarer et initialiser une variable de type Email. Les pièces jointes éventuelles seront déclarées dans des variables de type emailAttache, puis ajoutées à la propriété ..Attache de la variable Email.
    le type avancé Email qui offre des fonctionnalités évoluées (databinding, sérialisation, instances multiples, etc.).
    Dans ce cas, pour écrire un email, il est nécessaire de déclarer et initialiser une variable de type Email. Les pièces jointes éventuelles seront déclarées dans des variables de type emailAttache, puis ajoutées à la propriété ..Attache de la variable Email.
Lors de l'envoi du message (utilisation de la fonction EmailEnvoieMessage), les données présentes dans la variable ou structure email constitueront le message envoyé.
Versions 17 et supérieures
iPhone/iPad Cette fonctionnalité est désormais disponible pour les applications iPhone/iPad.
Nouveauté 17
iPhone/iPad Cette fonctionnalité est désormais disponible pour les applications iPhone/iPad.
iPhone/iPad Cette fonctionnalité est désormais disponible pour les applications iPhone/iPad.
Versions 21 et supérieures
Universal Windows 10 App Cette fonctionnalité est désormais disponible en mode Universal Windows 10 App.
Nouveauté 21
Universal Windows 10 App Cette fonctionnalité est désormais disponible en mode Universal Windows 10 App.
Universal Windows 10 App Cette fonctionnalité est désormais disponible en mode Universal Windows 10 App.
Versions 22 et supérieures
Android Cette fonctionnalité est désormais disponible pour les applications Android.
Cette fonctionnalité est désormais disponible en mode Widget Android.
Nouveauté 22
Android Cette fonctionnalité est désormais disponible pour les applications Android.
Cette fonctionnalité est désormais disponible en mode Widget Android.
Android Cette fonctionnalité est désormais disponible pour les applications Android.
Cette fonctionnalité est désormais disponible en mode Widget Android.
Les différentes étapes

Ecrire un email avec une variable de type Email

Pour écrire un email avec une variable de type Email :
  1. Déclarez et initialisez une variable de type Email en précisant les destinataires, le sujet, ... à l'aide des propriétés ..Destinataire, ..Cc, ..BCc et ..Sujet. Pour gérer un suivi de conversation, renseignez également la propriété ..MessageID.
  2. Si l'email est au format texte :
    • Initialisez la propriété ..Message avec le texte de l'email.
    • Précisez les fichiers attachés si nécessaire en déclarant des variables de type emailAttache et en les ajoutant à la propriété ..Attache de la variable représentant l'email.
  3. Si l'email est au format HTML : Utilisez la fonction EmailImporteHTML pour initialiser les différentes propriétés de l'email. Si l'email contient des images ou des fichiers multimédia, ils seront automatiquement ajoutés en pièces jointes à l'email et le contenu de l'email HTML sera modifié pour gérer les pièces jointes.
    Java La fonction EmailImporteHTML n'est pas disponible. Il est nécessaire d'utiliser la méthode utilisant la structure Email présentée ci-dessous.
  4. Versions 19 et supérieures
    Spécifiez si nécessaire des entêtes supplémentaires grâce à la propriété ..Entête.
    Nouveauté 19
    Spécifiez si nécessaire des entêtes supplémentaires grâce à la propriété ..Entête.
    Spécifiez si nécessaire des entêtes supplémentaires grâce à la propriété ..Entête.
  5. Envoyez l'email avec la fonction EmailEnvoieMessage. Si le sujet (ou un des éléments de l'email) contient des caractères spéciaux, des accents, utilisez la constante emailOptionEncodeEntête lors de l'envoi du message avec la fonction EmailEnvoieMessage. Le mail est alors envoyé au serveur. Le serveur conserve le mail jusqu'à la fermeture de la session. Lors de cette fermeture, le mail part effectivement vers le ou les destinataires.
WINDEVWindows Mobile Remarque : Il est possible de suivre la progression de l'envoi de l'email grâce à la fonction EmailJauge.

Ecrire un email avec la structure Email

Pour écrire un email avec la structure Email :
  1. Initialisez la structure Email en précisant les destinataires, le sujet, ... (Email.Destinataire, Email.NbDestinataire, Email.NbCc, Email.Cc et Email.Sujet). Pour gérer un suivi de conversation, renseignez également Email.MessageID.
  2. Si l'email est au format HTML :
    • 1er cas : la fonction EmailImporteHTML est disponible :
      • Utilisez la fonction EmailImporteHTML pour initialiser les différentes variables de la structure Email.
    • 2nd cas : la fonction EmailImporteHTML n'est pas disponible :
      • Initialisez les variables Email.Message et Email.HTML.
        Remarque : Il est conseillé de mettre un message au format texte pour les systèmes de messagerie ne permettant pas de lire des emails au format HTML.
      • Analysez le message HTML pour détecter tous les fichiers multimédia présents dans le message.
      • Pour chaque fichier multimédia trouvé :
        • Créez un fichier attaché. Ce fichier attaché correspond au fichier multimédia (variables Email.Attache et Email.NbAttache).
        • Créez un identifiant (Email.IdentifiantAttache). Cet identifiant doit être de la forme "wdcid"+numéro du fichier attaché. Par exemple, WDCID5 si le fichier correspondant est le cinquième fichier attaché.
        • Recherchez le fichier multimédia dans le message HTML et remplacez son nom par la chaîne : "cid:"+Email.IdentifiantAttache.
          Par exemple :
          Code HTML original : <IMG src="C:\MesImages\Image.gif">
          Code HTML remplacé : <IMG src="cid:WDCID5">
  3. Envoyez l'email avec la fonction EmailEnvoieMessage.
    Remarque : Si le sujet (ou un des éléments de l'email) contient des caractères spéciaux ou des accents, utilisez la constante emailOptionEncodeEntête lors de l'envoi du message avec la fonction EmailEnvoieMessage.
PHP Exemple pour PHP :
Email.Destinataire = "adresse@email.comr"
Email.NbDestinataire = 1
Email.Sujet = "Titre du mail"
Email.Message = "Contenu du mail"
EmailEnvoieMessage()
Exemples
WINDEVWEBDEV - Code ServeurWindowsLinuxWindows MobileCode Utilisateur (MCU)

Exemple utilisant la fonction EmailImporteHTML

Cet exemple permet d'envoyer un email contenant des images :
// Ouverture d'une session SMTP
MaSession est une emailSessionSMTP
MaSession..AdresseServeur = "smtp.monentreprise.com"
EmailOuvreSession(MaSession)

// Construction du message
MonMessage est un Email
MonTexteHTML = fChargeTexte("C:\Email\MonCourrier.htm")

EmailImporteHTML(MonMessage, MonTexteHTML, "C:\Email")

MonMessage..Destinataire = "bob@masociete.net"
MonMessage..Sujet = "Test"

// Envoi du message
EmailEnvoieMessage(MaSession, MonMessage, emailOptionEncodeEntête)

Exemple utilisant la structure Email

Cet exemple permet de remplacer les références aux fichiers multimédia (images, sons, ...) présents dans la variable Email.HTML par leurs identifiants de type "CID". Cette procédure est appelée pour chaque fichier trouvé.
PROCÉDURE SetFichierAttache(NomFichier, Indice)
Email.Attache[Indice] = NomFichier
Email.NbAttache ++

// Remplacer dans Email.HTML toutes les références aux fichiers attachés
// par l'identifiant cid
CID est une chaîne = "cid:wdcid" + Indice

// Le fichier html n'a pas forcément été créé dans le répertoire en cours
// Il peut référencer les fichiers attachés dans des chemins quelconques
// On extrait donc le nom du fichier sans chemin

NomSimple est une chaîne = fExtraitChemin(NomFichier, fFichier + fExtension)

// Rechercher le nom du fichier dans Email.HTML
Pos est un entier = 0
PosDébut, PosFin sont des entiers
SousChaîne est une chaîne
Pos = Position(Email.HTML, NomSimple, Pos)
SI Pos <> 0 ALORS
PosFin = Pos + Taille(NomSimple)
// Rechercher la position du début de la référence
// Rechercher le délimiteur "
Pos --
SousChaîne = Email.HTML[[Pos]]
TANTQUE Pos > 1 ET SousChaîne <> """"
   Pos --
   SousChaîne = Email.HTML[[Pos]]
FIN
PosDébut = Pos + 1
// Remplacer
SousChaîne = Milieu(Email.HTML, PosDébut, PosFin - PosDébut)
Email.HTML = Remplace(Email.HTML, SousChaîne, CID)
FIN
Utilisation du format EML pour personnaliser des emails
WINDEVWEBDEV - Code ServeurWindowsWindows MobileCode Utilisateur (MCU) Dans certains cas particuliers, la structure des emails envoyés peut ne pas correspondre aux informations voulues.
Quelques exemples :
  • La communication avec certains organismes (emails pour SESAM-VITALE) peut imposer des structures bien spécifiques.
  • Il est également possible de vouloir forcer un alphabet spécifique (pour une langue non latine).
  • Il est possible de vouloir indiquer une adresse de retour d'erreur différente de l'adresse d'expéditeur.
Pour personnaliser ces emails, le WLangage permet de générer le buffer de l'email, de le modifier puis d'envoyer cet email.
Les fonctions utilisées sont les suivantes :
  • EmailImporteSource : Cette fonction permet de lire un fichier EML existant et de remplir automatiquement les variables de la structure Email.
  • EmailConstruitSource : Cette fonction permet de générer le code source d'un email. Cette fonction permet de réaliser la définition complète du source de l'email en utilisant la souplesse de la structure Email.
  • EmailEnvoie : Cette fonction envoie un "buffer" au format EML contenant l'email structuré (créé par exemple avec la fonction EmailConstruitSource).
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'application permet également de gérer plusieurs comptes emails différents. L'écriture d'un email s'appuie sur le champ de saisie HTML.
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'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.
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