Génération du site web de l'ULB - format xml
sommairesommaireindexindexpage précédentepage précédentepage suivantepage suivanteimprimerimprimerenvoyerenvoyermarquermarquer

<mail>: envoi des données récoltées par un formulaire dans un message (email)

Un sous-élément <mail> placé tout au début de l'élément <formulaire> permettra, lors de l'envoi du formulaire, de transmettre un message électronique (email) à un ou plusieurs destinataires.

Ce message peut contenir toutes les données récoltées par le formulaire ou contenir du texte libre (qui peut, par exemple, utiliser des champs paramètrables pour y insérer les données récoltées par le formulaire).

Cette action, combinées avec d'autres actions, permet plusieurs scénarios. Par exemple:

  • dès que quelqu'un remplit le formulaire, on enregistre les données dans une base de données via <record>, et une action <mail> envoi un message d'avertissement aux responsables de ce formulaire pour dire qu'une nouvelle personne vient de s'enregistrer;

  • dès que quelqu'un remplit le formulaire, on enregistre les données dans une base de données via <record>, et une action <mail> envoi un message de confirmation à l'Internaute;

Après l'envoi, deux possibilités:

  • si vous utilisez une balise <redirect>, celle-ci va rediriger automatiquement l'appel vers une page html destinée à afficher un texte de remerciement et/ou de confirmation. Cette page sera affiché par le navigateur, en lieu et place de la page qui contient le formulaire;

  • si vous n'utilisez pas cette balise, une action ok (si l'envoi du message s'est bien passé) ou nok (si une erreur s'est produite) sera exécutée, ce qui permettra de poursuivre le traitement du formulaire avec d'autres actions.


Exemple de <mail>
Code de cet exemple
<formulaire options="intranet">
   <mail>
      <destinataire>Cellule.web@ulb.ac.be</destinataire>
      <sujet>votre demande</sujet>
   </mail>
   <input>   
      <nom>email</nom>
      <libellé>votre email</libellé>
      <valeur>Séraphin.Lampion@ulb.ac.be</valeur>
   </input>
   <bouton>
      <libellé>Envoyer</libellé>
   </bouton>
</formulaire>

(à des fins de test, l'adresse mentionnée dans <destinataire> sera remplacée par votre propre adresse)


Contenu de l'élément <mail>

L'élément <mail> peut contenir les sous-éléments suivants (ils ne sont pas obligatoires, mais vous devez au minimum utiliser un <destinataire>, un <to>, un <cc> ou un <bcc>):

<sujet>
<subject>

mentionne le sujet du message

<message>
<body>

mentionne le contenu du message

<destinataire>
<to>

mentionne un destinataire principal du message

<cc>

mentionne un destinataire à mettre en copie du message

<bcc>

mentionne un destinataire à mettre en copie cachée du message

<émetteur>
<from>

mentionne l'émetteur du message

<répondre-à>
<reply-to>

mentionne l'adresse de réponse du message

<redirect>

après l'envoi, redirige le navigateur vers une page de remerciement et/ou de confirmation

<paramètre>
<parameter>

crée un paramètre supplémentaire à envoyer à l'application distante. Ce paramètre viendra s'ajouter aux paramètres récoltés par le formulaire

<actions exécuter="...">

permet de déclencher des actions au moment de l'affichage de la page, avant l'envoi des données du formulaire ou après l'envoi des données du formulaire


L'élément <mail> peut posséder l'attribut suivant:

ancre

place une ancre sur l'action, afin de la distinguer des autres actions dans le cas où plusieurs actions coexistent dans le même formulaire


Contenu et sujet du message

Le contenu et le sujet du message peuvent être choisis à l'aide des éléments <message> et <sujet> (ou <body> et <subject>).

Ces balises ne peuvent contenir que du texte (plusieurs lignes de texte dans le cas de <message>). Toutefois, ce texte peut faire usage de champs paramètrables pour venir y introduire des données de toute sorte: des informations sur la page, des informations sur la personne qui consulte la page (connectée à l'Intranet) et, bien entendu, les paramètres liés aux champs du formulaire.


Si vous ne mentionnez pas ces éléments, un contenu et/ou un sujet par défaut sera utilisé.

Dans le cas du sujet, la valeur par défaut est: "Réponse au formulaire {page:pageURL}", où le paramètre {page:pageURL} sera remplacé par l'URL de la page contenant le formulaire.

Dans le cas du contenu, le message par défaut contiendra la liste de tous les paramètres récoltés par le formulaire. Pour chaque paramètre, une première ligne mentionnera le nom du paramètre entouré de tirets de séparation et une deuxième ligne donnera la valeur du paramètre.


Cet exemple ne définit ni contenu, ni sujet. Les valeurs par défaut seront utilisées (le message sera adressé à votre propre adresse, si vous êtes connectés à l'Intranet).

Exemple
<formulaire options="intranet">
   <mail>
      <destinataire>{intranet:email}</destinataire>
      <actions exécuter="après">alerte(Le message a été envoyé à {intranet:email})</actions>
   </mail>
   <input>
      <nom>nom</nom>
      <libellé>votre nom</libellé>
      <valeur>Lampion</valeur>
   </input>
   <input>
      <nom>prénom</nom>
      <libellé>votre prénom</libellé>
      <valeur>Séraphin</valeur>
   </input>
   <input type="radio">
      <nom>inscription</nom>
      <libellé>vous vous inscrivez à la séance du</libellé>
      <option valeur="12/6" sélectionnée="oui">12 juin</option>
      <option valeur="14/7">14 juillet</option>
      <option valeur="10/8">10 août</option>
   </input>
   <bouton>
      <nom>ok</nom>
      <libellé>envoyer</libellé>
   </bouton>							
</formulaire>					
					
				

Le même exemple, mais avec un sujet et un contenu définis au sein de l'élément <mail>. Les contenus des éléments <sujet> et <message> font appel à des paramètres provenant du formulaire.

Exemple
<formulaire options="intranet">
   <mail>
      <destinataire>{intranet:email}</destinataire>
      <sujet>Inscription à la séance d'information - {form:nom}</sujet>
      <message>
Bonjour {form:prénom},

Nons avons bien enregistré votre inscription à la séance d'information du {form:inscription/option}.

En vous remerciant.
      </message>
      <actions exécuter="après">alerte(Le message a été envoyé à {intranet:email})</actions>
   </mail>
   <input>
      <nom>nom</nom>
      <libellé>votre nom</libellé>
      <valeur>Lampion</valeur>
   </input>
   <input>
      <nom>prénom</nom>
      <libellé>votre prénom</libellé>
      <valeur>Séraphin</valeur>
   </input>
   <input type="radio">
      <nom>inscription</nom>
      <libellé>vous vous inscrivez à la séance du</libellé>
      <option valeur="12/6" sélectionnée="oui">12 juin</option>
      <option valeur="14/7">14 juillet</option>
      <option valeur="10/8">10 août</option>
   </input>
   <bouton>
      <nom>ok</nom>
      <libellé>envoyer</libellé>
   </bouton>							
</formulaire>					
					
				

Destinataires et émetteur du message

Vous devez au minimum spécifier un destinataire au message, à l'aide d'une balise <destinataire> (ou <to>), <cc> ou <bcc>.

<destinataire> ou <to> mentionnent l'adresse du destinataire principal, tandis que <cc> ou <bcc> indiquent respectivement un destinataire à mettre en copie ou en copie cachée.

Vous pouvez également envoyer le message à une liste de destinataires, en multipliant ces balises ou en mentionnant une liste d'adresses email séparées par des virgules.

Pour des raisons de sécurité, il n'est pas possible de mentionner des adresses mail en dehors du domaine @ulb.ac.be (sinon, le formulaire deviendra inévitablement la cible des spammeurs).

Vous pouvez également définir l'adresse que les destinataires verront apparaître comme étant l'émetteur (from) du message, grâce à une élément <émetteur> (ou <from>). La valeur par défaut est formulaire@ulb.ac.be.

De même, vous pouvez définir l'adresse de réponse (reply-to) du message, grâce à une élément <répondre-à> (ou <reply-to>). La valeur par défaut est noreply@ulb.ac.be ce qui aura pour effet d'ignorer ces réponses.

Tous les paramètres mentionnés ci-contre peuvent utiliser des champs paramètrables, notamment le champ {intranet:email} qui contient l'adresse email de la personne qui remplit le formulaire, si elle est connectée à l'Intranet de l'ULB.



Dans cet exemple, le destinataire sera vous-même si vous êtes connecté à l'Intranet, grâce au champ paramètrable {intranet;email}.

L'émetteur du message sera Cellule.web@ulb.ac.be, mais les réponses seront envoyées à votre propre adresse.

Exemple
<formulaire options="intranet">
   <mail>
      <destinataire>{intranet:email}</destinataire>
      <émetteur>Cellule.web@ulb.ac.be</émetteur>
      <répondre-à>{intranet:email}</répondre-à>
      <sujet>Inscription à la séance d'information - {form:nom}</sujet>
      <actions exécuter="après">alerte(Le message a été envoyé à {intranet:email})</actions>
   </mail>
   <input>
      <nom>nom</nom>
      <libellé>votre nom</libellé>
      <valeur>Lampion</valeur>
   </input>
   <input>
      <nom>prénom</nom>
      <libellé>votre prénom</libellé>
      <valeur>Séraphin</valeur>
   </input>
   <input type="radio">
      <nom>inscription</nom>
      <libellé>vous vous inscrivez à la séance du</libellé>
      <option valeur="12/6" sélectionnée="oui">12 juin</option>
      <option valeur="14/7">14 juillet</option>
      <option valeur="10/8">10 août</option>
   </input>
   <bouton>
      <nom>ok</nom>
      <libellé>envoyer</libellé>
   </bouton>							
</formulaire>					
					
				

Après l'envoi, rediriger vers une page de remerciement et/ou de confirmation

Après l'envoi, vous pouvez faire apparaître une page web de remerciement et/ou de confirmation. Pour cela, il faut utiliser un élément <redirect> possèdant un attribut de lien hypertexte (le plus généralement docref ou href). Cet attribut donne l'adresse (URL) de cette page.

Le fonctionnement est alors similaire au traitement de la réponse dans un élément <action>. En particulier, prenez en compte le fait que cette page vient remplacer la page courante dans le navigateur. De ce fait, les actions que vous comptiez éventuellement exécuter par la suite ne le seront pas (la page ayant disparue, ces actions ne seront plus définies).

Pour contourner ce fait, vous pouvez utiliser un attribut nouvel-onglet ou cible (la page de remerciement sera affichée dans un nouvel onglet ou dans une balise html de la page, ce qui laissera la page courante active dans le navigateur. Pour plus d'info, voir <action>). Vous pouvez également ne pas utiliser cet élément <redirect>, ce qui a pour effet que l'envoi de l'email exécute une action ok ou nok comme expliqué ci-dessous.


Dans cet exemple, l'appel est redirigé après l'envoi vers une page de remerciement.

exemple
<formulaire style="voile" bords="arrondis">
   <mail>
      <destinataire>{intranet:email}</destinataire>
      <redirect docref="info:remerciements"/>
   </mail>
   <input>
      <nom>nom</nom>
      <libellé>nom et prénom</libellé>
   </input>
   <input>
      <nom>e-mail</nom>
      <libellé>adresse e-mail</libellé>
   </input>
   <bouton>
      <nom>ok</nom>
      <libellé>envoyer</libellé>
   </bouton>	
</formulaire>

Après l'envoi, exécuter une action ok/nok

Si vous n'utilisez pas d'élément <redirect>, l'envoi du message va exécuter(*) une action ok (si l'envoi du message s'est bien passé) ou nok (si une erreur est survenue lors de l'envoi).

Vous pouvez, de ce fait exécuter par la suite vos propres actions afin de traiter l'une ou l'autre de ces réponses (l'action si permet de tester si ok ou nok a été exécutée).

(*) Dans la réalité, l'envoi du message se fait par une application distante qui retourne, comme dans un élément <interaction>, une chaîne de caractères contenant une liste d'actions qui seront exécutées par le navigateur. Dans ce cas-ci, cette liste se limite aux actions ok ou nok.


Dans cet exemple, il n'y a pas de page de remerciement. Des actions, exécutées après l'envoi, sont utilisées pour tester si cet envoi à réussi ou non (si:suivant:error). S'il a réussi, elles font disparaître le formulaire (masquer:formulaire) et apparaître un bloc (montrer:dataok) contenant une confirmation de l'envoi. En cas d'erreur, une alerte est affichée dans une boîte de dialogue.

Une autre action est exécutée lors de l'affichage de la page afin de masquer initialement le bloc en question (masquer:dataok).

Des actions seront également exécutées avant l'envoi, afin de demander une confirmation à l'utilisateur.

Vos coordonnées ont bien été traitées.

ULB - entreprise écodynamique