Использование значений электронных таблиц в html теле письма с GmailApp.sendEmail - PullRequest
0 голосов
/ 10 января 2019

У меня есть скрипт, который отправляет электронное письмо с помощью GmailApp с html телом. Мне бы хотелось, чтобы тело html содержало конкретные значения из таблицы, в которой оно содержится, но каждый раз, когда электронное письмо отправляется, скриптлет, который я добавляю, отображается в виде простого текста.

email.gs:

function sendEmail() {



  var mailTo = 'example@gmail.com'


  var NAME = SpreadsheetApp.getActiveSheet().getRange('Sheet1!A1').getValue();


  var subject = 'Hello!'
  var html = HtmlService.createHtmlOutputFromFile('body').getContent();



  GmailApp.sendEmail('', subject, '', {


    name: 'Friend',
    htmlBody: html,
    bcc: mailTo


  });


}

body.html:

<h1>Good Evening, <? NAME ?> </h1>
<h3>Hello Friend!</h3>

«ИМЯ» следует извлекать из указанной ячейки на листе при каждом запуске сценария.

Я предполагаю, что причина, по которой он отображается в виде текста, заключается в том, что GmailApp.sendEmail вставляет необработанный HTML-код в электронное письмо и предполагает, что клиент его прочитает, так как я мог сначала заставить его обработать сценарий, а затем вставить в Эл. адрес?

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Или вы можете использовать createTemplateFromFile и отметить "=" в

function sendEmail() {
  var mailTo = 'example@gmail.com'
  var subject = 'Hello!'
  var html = HtmlService.createTemplateFromFile('body');
  html.NAME = SpreadsheetApp.getActiveSheet().getRange('Sheet1!A1').getValue();
  html = html.evaluate().getContent();

  GmailApp.sendEmail('', subject, '', {
    name: 'Friend',
    htmlBody: html,
    bcc: mailTo
  });

}

<h1>Good Evening, <?= NAME ?> </h1>
<h3>Hello Friend!</h3>
0 голосов
/ 10 января 2019

Текст html находится в другом файле и недоступен для переменной NAME. Попробуйте это.

function sendEmail() {



  var mailTo = 'example@gmail.com'


  var NAME = SpreadsheetApp.getActiveSheet().getRange('Sheet1!A1').getValue();

var bodyText = "<h1>Good Evening,"+ NAME +" </h1><br><h3>Hello Friend!</h3>"

  var subject = 'Hello!'


  GmailApp.sendEmail('', subject, '', {


    name: 'Friend',
    htmlBody: bodyText,
    bcc: mailTo


  });


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...