Partage
  • Partager sur Facebook
  • Partager sur Twitter

récupération données d'un tableau pour email auto

    19 octobre 2020 à 16:18:16

    Bonjour à tous, 

    Je me suis lancé dans l'automatisation de l'envoie d'email à partir de données récupérer de formulaire sur google sheet. 

    Voici les étapes de ce que je veux faire : 

    1/ la personne rempli un formulaire pour nous donner des infos basiques sur lui 

    2/ On lui envoie automatiquement un email de bienvenu, qui contient une vidéo et un autre formulaire pour choisir des produits

    3/une fois que ce 2ème formulaire est rempli, je veux que la liste de produits choisis soit envoyer par email automatiquement à quelqu'un de mon choix. 

    J'ai pas mal avancé, mais je bloque au moment de remplir automatique le mail à envoyer avec les produits choisis. En effet, je n'arrive pas à récupérer cette liste de produit et l'introduire dans le template du mail à envoyer. 

    function MailProduit(){
      
      var feuille1 = SpreadsheetApp.getActive().getSheetByName('Form Responses 1');
      var data_range1 = feuille1.getDataRange();
      var dernier_rang1 = data_range1.getLastRow();
      
      for(var ligne=2; ligne<=dernier_rang1;ligne++){
        var isFormulaireOk=feuille1.getRange(ligne,1).getValue();
        if(isFormulaireOk == "Formulaire OK"){
          
          var mail = feuille1.getRange(ligne,13).getValue();
          var nom = feuille1.getRange(ligne,4).getValue();
          var prenom = feuille1.getRange(ligne,5).getValue();
          envoyerMailProduit(nom,prenom,mail);
          feuille1.getRange(ligne,1).setValue("Mail produit envoyé");
        }
      
      }
    }  
    
    
    function envoyerMailProduit(nom,prenom,mail){
      
      var mailRandonneur = mail;
      
      var infoRandonneur = recupererInfoCommande(mailRandonneur);
      
      var modele = HtmlService.createTemplateFromFile('ProduitCommande');
      var message = modele.evaluate().getContent();
      var adressemail = "baptistelautrette@hotmail.fr";
      
      modele.infoRandonneur = infoRandonneur; 
      
      MailApp.sendEmail({
        to: adressemail,
        subject: "Produits à commander pour un randonneur",
        htmlBody: message
      });
      
    }
    
    function recupererInfoCommande(mailRandonneur)
    {
      var mailVerif=mailRandonneur; 
      
      var feuille2 = SpreadsheetApp.getActive().getSheetByName('Form Responses 2');
      var data_range2 = feuille2.getDataRange();
      var dernier_rang2 = data_range2.getLastRow();
      var dernier_colonne2 = data_range2.getLastColumn();
      
      
      for(var ligne=2; ligne<=dernier_rang2;ligne++){
        var mailRecherche = feuille2.getRange(ligne,2).getValue();
        if (mailVerif == mailRecherche){
          var valeurs = feuille2.getRange(ligne,6,ligne,26).getValues();                
          var enregistrement = valeurs[0];
          var infoRandonneur = 
          {
            sockH:enregistrement[1],
            tailleSockH:enregistrement[2],
            pantalonH:enregistrement[3],
            taillePantalonH:enregistrement[4],
            ponchoH:enregistrement[5],
            taillePonchoH:enregistrement[6],
            tshirtH:enregistrement[7],
            tailleTshirtH:enregistrement[8],
            polaireH:enregistrement[9],
            taillePolaireH:enregistrement[10],
            casquetteH:enregistrement[11],
            batonH:enregistrement[12],
            sacF:enregistrement[13],
            sockF:enregistrement[14],
            tailleSockF:enregistrement[15],
            pantalonF:enregistrement[16],
            taillePantalonF:enregistrement[17],
            ponchoF:enregistrement[18],
            taillePonchoF:enregistrement[19],
            tshirtF:enregistrement[20],
            tailleTshirtF:enregistrement[21],
            polaireF:enregistrement[22],
            taillePolaireF:enregistrement[23],
            casquetteF:enregistrement[24],
            batonF:enregistrement[25]
          };
          return infoRandonneur;
        }
      }
    }

    Je ne suis pas du tout développeur, donc je vous accorde que le code ne doit pas être optimisé ... 


    Et voici le template du mail (c'est juste un test pour l'instant donc normal qu'il ne soit pas rempli : 

    <!DOCTYPE html>
    <html>
      <head>
        <base target="_top">
      </head>
      <body>
      <p> Hello World </p>
      <p> <?= infoRandonneur.sacF ?> </p>
      </body>
    </html>
    

    L'erreur que j'ai à chaque fois c'est "ReferenceError: infoRandonneur is not defined (line 8)"st, en ligne 8 du code HTML du template. Donc je suppose que le problème vient de la création du tableau pour stocker les données de la commande.

    J'ai tenté plein de chose pour m'en sortir mais là je n'ai plus d'idée. 

    Donc si quelqu'un peut m'aider ça serait super :) 

    Merci d'avance, 

    Baptiste 



    • Partager sur Facebook
    • Partager sur Twitter
      20 octobre 2020 à 10:32:46

      Salut,

      Ouvre un debugger dans ton navigateur (F12) et mets un point d'arrêt dans ton code à la ligne de l'erreur. Déroule le code pas àa pas en faisant F10 dans ta fonction recupererInfoCommande pour voir pourquoi elle renvoie rien.

      • Partager sur Facebook
      • Partager sur Twitter

      récupération données d'un tableau pour email auto

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown