Как отправлять пакетные электронные письма с форматированным HTML в скрипте Google Apps - PullRequest
0 голосов
/ 24 апреля 2019

Несколько месяцев назад с помощью людей, отвечающих на мой пост, мне удалось написать скрипт, который позволит мне брать данные из определенных ячеек листа Google и помещать эти данные в шаблон HTML и отправлять их через Gmail.(все в коде скрипта приложения).Это было замечательно!Но я пытался сделать тот же сценарий, но на этот раз собирал данные, чтобы поместить их в HTML с помощью цикла (потому что я хочу, чтобы электронная почта отправлялась партиями (сейчас мне приходится нажимать кнопку каждый раз, когда я хочуотправить электронное письмо, и у меня есть много строк (электронных писем) для отправки).

Основная проблема заключается в том, что для заполнения HTML моими данными мне нужно вызвать функцию из HMTL, что было здорово, когда янеобходимо получить значение определенной ячейки (например, A1), но теперь мне нужны данные строки, указанной в цикле (например: сначала A1, затем A2). Функция может использовать нужную мне строку (например, getName(i) где i - строка, но поскольку я вызываю функцию из HTML, я не знаю, как передать i в HTML для вызова функции. Я попал в цикл.

Функция для получения значения ячейки:

   function getname() {
       var ss = SpreadsheetApp.getActiveSpreadsheet();
       var sheet = ss.getSheetByName("Sheet2");  // the sheet I'm working on
       var name = sheet.getRange("A1");
       return name.getValues()[0]
   }

Функция для отправки почты:

   function sendHTMLmail() {
     var htmlBody =                             HtmlService.createTemplateFromFile('test').evaluate().getContent();
     MailApp.sendEmail({
             to: "test@gmail.com",
             name: "test",   
             subject: "test",
             htmlBody: htmlBody,
           });  
   }

HTML-код, где я получаю и печатаю имя

   <!DOCTYPE html>
   <html>
     <head>
       <base target="_top">
     </head>
     <body>
          <? var name = getname(); ?>

          Hi <?= name ?>
     </body>
   </html>

цикл я хотел бы улучшить

   function doGet() {
     var ss = SpreadsheetApp.getActiveSpreadsheet();
     var sss = ss.getSheetByName("Sheet1");

     for( i = 1 ; i < 4 ; i++) {

     var htmlBody = HtmlService.createTemplateFromFile('Prueba').evaluate().getContent();
     MailApp.sendEmail({
             to: "test@gmail.com",
             name: "test",   
             subject: "test",
             htmlBody: htmlBody,
           });  
   }
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...