Souvent demandé par mes collègues, comment envoyer un email avec les informations saisies dans un formulaire ?
En fait en quelques lignes de script, vous pouvez assez facilement répondre à ce besoin.
Avant de vous présenter le script, un rappel : quand vous créer un formulaire, vous avez la possibilité de recevoir les réponses dans une feuille de calcul Google Sheets.
Depuis la feuille de calcul, vous avez accès à l'éditeur de script via le menu Outils > Editeur de script qui vous affichera un écran pour écrire votre script.
Imaginons un formulaire tout simple de demande d'assistance.
L'idée serait qu'à chaque fois qu'un formulaire est soumis, le service support reçoive une information par email.
Pour cela, nous allons devoir via un script "attraper" les informations saisies, les mettre en forme pour les envoyer au support afin que le mail puisse ressembler à ceci
| 14:12 (il y a 0 minute) | |||
Bonjour,
Merci de traiter la demande d'assistance de Jean BOMBEUR :
- Demande : Ceci est un test
- Gravité: 3
Email du demandeur : jean@bombeur.fr
Lien du fichier pour obtenir l'ensemble des informations.
Belle journée,
Et voici une proposition de script avec le code Javascript
function envoiEmail(e) {
// Définition du classeur et de la feuille
var classeur = SpreadsheetApp.getActiveSpreadsheet()
var feuille = classeur.getSheetByName("Réponses au formulaire 1");
// Lire les données dans un tableau
var formulaireArray = feuille.getDataRange().getValues();
// Récupération des valeurs
var horodateur = e.values[0];
var nom = e.values[1];
var emailDemandeur =e.values[2];
var gravite = e.values[3];
var demande = e.values[4];
var email = "support@domaine.fr"; <= A MODIFIER
var url = classeur.getUrl();
const htmlTemplate = HtmlService.createTemplateFromFile("email");
htmlTemplate.horodateur = horodateur;
htmlTemplate.nom = nom;
htmlTemplate.emailDemandeur = emailDemandeur;
htmlTemplate.gravite = gravite;
htmlTemplate.demande = demande;
htmlTemplate.url = url;
const htmlForEmail = htmlTemplate.evaluate().getContent();
console.log(htmlForEmail);
var sujet = "Demande de " + nom ;
GmailApp.sendEmail(email,
sujet,
"Merci de lire ce mail avec un client supportant le code HTML",
{htmlBody: htmlForEmail }
);
}
Et le code Html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<div>Bonjour,</div>
<div><br>Merci de traiter la demande d'assistance de <?= nom ?> :</div>
<div>
<ul>
<li>Demande : <?= demande ?> </li>
<li>Gravité: <?= gravite ?> </li>
</ul>
</div>
<div>
<br>Email du demandeur : <?= emailDemandeur ?>
<br><a href='<?= url ?>'>Lien du fichier</a> pour obtenir l'ensemble
des informations.
</div>
<br>Belle journée,
</body>
</html>