通过 GmailApp.sendEmail 在电子邮件的 html 正文中使用电子表格值

use*_*534 2 html javascript google-apps-script

我有一个脚本,使用带有 html 正文的 GmailApp 发送电子邮件。我希望 html 正文包含包含它的电子表格中的特定值,但每次发送电子邮件时,我添加的 scriptlet 都会显示为纯文本。

电子邮件.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


  });


}
Run Code Online (Sandbox Code Playgroud)

正文.html:

<h1>Good Evening, <? NAME ?> </h1>
<h3>Hello Friend!</h3>
Run Code Online (Sandbox Code Playgroud)

每当脚本运行时,应从工作表中的指定单元格中提取“NAME”。

我猜测它显示为文本的原因是 GmailApp.sendEmail 将原始 html 粘贴到电子邮件中并假设客户端会阅读它,那么我如何首先让它通过脚本进行处理,然后粘贴到电子邮件中?

The*_*zEd 9

或者您可以使用 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>
Run Code Online (Sandbox Code Playgroud)