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.

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]);
    }
  };
}
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).
J'ai tenté de mettre :
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();
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
at sendMail(Code:19:29)"

Comment faire en sorte de récupérer les variables date, jour, formation pour pouvoir les utiliser dans sendMail ?