Envoi mail suite au remplissage d'un formulaire
A
Bonjour, j'aimerai envoi un mail automatique dès que j'appuie sur le bouton ajouter. Comment Faire ?
Voici mon code pour le formulaire, que dois-je rajouter ?
Google script
function Ajout_DA() {
const html = HtmlService.createHtmlOutputFromFile('form')
.setWidth(300)
.setHeight(600);
SpreadsheetApp.getUi().showModalDialog(html, 'Ajouter une DA');
}
function ajouterLigne(tab) {
SpreadsheetApp.getActiveSheet().appendRow(tab);
}Html
<!DOCTYPE html>
<html>
<head>
<style>
body {
padding: 0 0.5rem;
color: #333;
font-family: Roboto, Arial, sans-serif;
overflow: hidden;
}
p {
margin: 0.8rem 0 0.3rem;
}
.annuler {
display: inline-block;
margin-top: 1rem;
font-size: 0.88rem;
color: #888;
cursor: pointer;
}
.annuler:hover {
text-decoration: underline;
}
input[type="text"] {
display: block;
width: 100%;
box-sizing: border-box;
margin-bottom: 1rem;
padding: 0.6rem 0.7rem;
background: #f3f3f3;
color: #444;
border: none;
font-size: 1.08rem;
border-radius: 0.4rem;
}
input[type="date"] {
display: block;
width: 100%;
box-sizing: border-box;
margin-bottom: 1rem;
padding: 0.6rem 0.7rem;
background: #f3f3f3;
color: #444;
border: none;
font-size: 1rem;
border-radius: 0.4rem;
}
input[type="button"] {
display: block;
width: 100%;
padding: 0.7rem 0 0.6rem;
border: none;
background: #001b5b;
color: #fff;
font-size: 1.15rem;
cursor: pointer;
border-radius: 0.4rem;
}
input[type="button"]:hover {
background: #001b5b;
}
</style>
</head>
<body>
<p>DIV</p>
<input type="text" name="DIV" value="">
<p>Date</p>
<input type="date" name="date" value="">
<p>DA</p>
<input type="text" name="DA" value="">
<input type="button" value="Ajouter"onclick="ajouter()">
<span class="annuler" onclick="google.script.host.close()">Annuler</span>
<script>
function ajouter() {
const selects = document.querySelectorAll('select');
const inputs = document.querySelectorAll('input[type="text"]');
const dates = document.querySelectorAll('input[name="date"]');
let tab = [];
for (const input of inputs) {
tab.push(input.value);
}
for (const date of dates) {
tab.push(date.value);
}
for (const select of selects) {
tab.push(select.value);
}
if (tab.join('') == '') {
alert('Le formulaire est vide !');
return;
}
inputs.forEach(input => input.value = '');
google.script.run.ajouterLigne(tab);
}
</script>
</body>
</html>P
Bonjour,
Vous voulez mettre des données de votre fichier dans le mail ? Juste une notification ?
A
Oui je voudrais renvoyer les données remplies dans le formulaire.
P
Essayez ceci, dans votre fonction ajouterLigne
var mail = 'ceciestuneadressemail@veolia.com, autremail@veolia.com';
var message = ""Bonjour""+""<p> Voici les informations contenues dans la ligne <p><p> ""+tab;
MailApp.sendEmail({to: mail , subject: ""ceci est l'objet du mail"", htmlBody:message}) ;}"A
Bonjour, au final j'ai utilisé des choses que j'avais déjà faites car les adresses mails changent.
Juste là j'ai 4 pop up qui apparaissent et j'aimerai avoir un seul formulaire, est-ce possible ?
function Ajout_DA(){
var spreadsheet = SpreadsheetApp.getActive();
const div = Browser.inputBox('Nouvelle DA',"Entrez le numéro de DIV:", Browser.Buttons.OK);
const da = Browser.inputBox('Nouvelle DA',"Entrez le numéro DA:", Browser.Buttons.OK);
const date = Browser.inputBox('Nouvelle DA',"Entrez la date:", Browser.Buttons.OK);
const four = Browser.inputBox('Nouvelle DA',"Entrez le fournisseur:", Browser.Buttons.OK);
spreadsheet.getRange('2:2').activate();
spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 1);
spreadsheet.getActiveRange().offset(0, 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
spreadsheet.getRange('a2').setValue(div);
spreadsheet.getRange('B2').setValue(da);
spreadsheet.getRange('C2').setValue(date);
spreadsheet.getRange('D2').setValue(four);
spreadsheet.getRange('E2').activate();
spreadsheet.getCurrentCell().setFormula('=VLOOKUP($D2;ANNEXES!$A:$C;3;0)');
var commande =spreadsheet.getSheetByName('COMMANDE');
var Texte_mail =spreadsheet.getSheetByName('ANNEXES');
var subject = Texte_mail.getRange(4,6).getValue();
var message = Texte_mail.getRange(4,7).getValue();
var emailAddress = commande.getRange(2,5).getValue();
message = message.replace("<div>", div).replace("<date>", date).replace("<da>", da);
subject = subject.replace("<div>", div);
MailApp.sendEmail(emailAddress,subject,message);
}P
Bonjour,
Oui c'est possible, avec votre 1ere solution qui créait une popup html