Bonjour,
Après avoir demandé de l'aide sur StackOverflow, j'ai pu faire en sorte qu'un mail soit envoyé au répondant lors de l'envoi du questionnaire. Cependant, j'ai gardé le code tel quel et ne comprends pas tout ce qu'il fait. J'ai rajouté des choses mais du coup, ça ne fonctionne plus, ou du moins pas comme je le voudrais.
J'ai compris comment aller chercher les réponses mais j'ignore comment la correspondance entre les variables de la fonction sendLater et la fonction sendMail se fait. Si je laisse le code tel quel, je vois bien qu'il comprend que "mail" est égal à la réponse donnée pour formation. Il retourne une erreur et mon mail n'est donc pas correct.
Je comprends que c'est normal que ça ne fonctionne pas ainsi, puisque trigger.getUniqueId(); est changé à chaque fois et ne garde que la valeur du dernier (formation donc).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 function sendLater(event) { var mail = event.response.getItemResponses()[0].getResponse(); var date = event.response.getItemResponses()[1].getResponse(); var jour = event.response.getItemResponses()[2].getResponse(); var formation = event.response.getItemResponses()[3].getResponse(); var triggerUid = event.triggerUid; // ID of trigger that produced this event var trigger = ScriptApp.newTrigger("sendMail") // Lors de l'envoi du formulaire, envoyer 6 mois plus tard 262980 .timeBased() .after(262980 * 60 * 1000) .create(); //Je comprends que le trigger.getUniqueId() permet de récupérer le mail et définit la variable mail comme étant cet id, le mail reçu var id = trigger.getUniqueId(); PropertiesService.getScriptProperties().setProperty(id, mail) //Je suppose que ci-dessous, ça ne définit pas différentes variables mais une seule car ils sont tous sur le même UniqueId var da = trigger.getUniqueId(); PropertiesService.getScriptProperties().setProperty(da, date) var ji = trigger.getUniqueId(); PropertiesService.getScriptProperties().setProperty(ji, jour) var fo = trigger.getUniqueId(); PropertiesService.getScriptProperties().setProperty(fo, formation); } function sendMail(event) { var id = event.triggerUid; var mail = PropertiesService.getScriptProperties().getProperty(id); // MAIL var da = event.triggerUid; var date = PropertiesService.getScriptProperties().getProperty(da); // DATE var fo = event.triggerUid; var formation = PropertiesService.getScriptProperties().getProperty(fo); //FORMATION var ji = event.triggerUid; var jour = PropertiesService.getScriptProperties().getProperty(ji); //JOUR var subject = "Entête du mail" ; Logger.log(mail); //Vérifier la variable que sort mail dans les exécutions MailApp.sendEmail({ to:mail, subject:subject, htmlBody: "blabla" + date + jour + formation }); // Je ne sais pas ce que fait cette partie PropertiesService.getScriptProperties().deleteProperty(id); var triggers = ScriptApp.getProjectTriggers(); for (var i = 0; i < triggers.length; i++) { if(triggers[i].getUniqueId() == id){ ScriptApp.deleteTrigger(triggers[i]); } }; }
J'ai tenté de mettre :
dans sendMail, mais ça ne fonctionne pas, il ne comprend pas ce que je lui demande et me répond "Cannot read property 'getItemResponses' of undefined
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 var date = event.response.getItemResponses()[1].getResponse(); var jour = event.response.getItemResponses()[2].getResponse(); var formation = event.response.getItemResponses()[3].getResponse();
at sendMail(Code:19:29)"
Comment faire en sorte de récupérer les variables date, jour, formation pour pouvoir les utiliser dans sendMail ?
Partager