<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:
Après l'envoi, deux possibilités:
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>):
L'élément <mail> peut posséder l'attribut suivant:
Contenu et sujet du messageLe 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 confirmationAprè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/nokSi 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. |