Google apps script 如何使用html文件作为htmlBody?

Google apps script 如何使用html文件作为htmlBody?,google-apps-script,gmail,Google Apps Script,Gmail,如何将html文件用作htmlBody??? 我知道我可以使用MailApp.sendEmail发送电子邮件。 我知道我可以用html代码设置htmlBody。 然而,我的html代码太长,并且有很多行,所以我想把它们写在一个额外的html文件中,而不仅仅是使用一个带有这么多“+”的gs文件。 我该怎么做呢?这个示例脚本怎么样?请把这当作几个答案之一 当您将HTML正文作为HTML文件放到脚本编辑器中时,可以使用HtmlService.createHtmlOutFromFile()实现它。示例脚

如何将html文件用作htmlBody???

我知道我可以使用MailApp.sendEmail发送电子邮件。 我知道我可以用html代码设置htmlBody。 然而,我的html代码太长,并且有很多行,所以我想把它们写在一个额外的html文件中,而不仅仅是使用一个带有这么多“+”的gs文件。
我该怎么做呢?

这个示例脚本怎么样?请把这当作几个答案之一

当您将HTML正文作为HTML文件放到脚本编辑器中时,可以使用
HtmlService.createHtmlOutFromFile()
实现它。示例脚本如下所示

MailApp.sendEmail({
  to: emailaddress,
  subject: subject,
  htmlBody: loadMyFile(filename,folderID)}
);

function loadMyFile(filename,folderID){
  var fldr=DriveApp.getFolderById(folderID);
  var file=fldr.getFilesByName(filename);
  while(file.hasNext()){
    var fi=file.next();
    var target=fi.getName();
    if(target==filename){
      var s=fi.getBlob().getDataAsString();
    }
  }
  return s;
}
示例脚本: 参考资料:
如果我误解了你的问题,我很抱歉

编辑: 如果在运行脚本时要更新表,可以使用此示例脚本

气体: HTML:

参考资料:

有时我喜欢在Ultraedit中构建这些文件,并将它们作为txt文件存储在google驱动器上,然后将它们提取为html字符串,如下所示

MailApp.sendEmail({
  to: emailaddress,
  subject: subject,
  htmlBody: loadMyFile(filename,folderID)}
);

function loadMyFile(filename,folderID){
  var fldr=DriveApp.getFolderById(folderID);
  var file=fldr.getFilesByName(filename);
  while(file.hasNext()){
    var fi=file.next();
    var target=fi.getName();
    if(target==filename){
      var s=fi.getBlob().getDataAsString();
    }
  }
  return s;
}

您还可以使用获取从@random parts返回的
字符串
内容谢谢您提供的其他信息。在这种情况下,有几种方法。也可以从Google Drive上的文件中读取HTML正文。用户可以从中进行选择。非常感谢,这正是我需要的。如果我需要一些html代码来实现动态,我该怎么做?例如:填充表格。@Zhiyong ZHOU您可以在脚本编辑器中创建他们的html文件。因此,您可以通过为
HtmlService.createhtmloutpfromfile(filename)
选择HTML文件来发送邮件。如果我误解了你的评论,请告诉我。@Tanaike你可能会误解我的评论,因为我表达得不清楚。我知道如何选择HTML文件,但我仍然困惑的是,如何更改的innerhtml,因为我的HTML代码有标记,每次运行脚本时我都需要动态填充表格。
<table>
  <? for (var i = 0; i < data.length; i++) { ?>
    <tr>
        <td><?= data[i] ?></td>
    </tr>
  <? } ?>
</table>
MailApp.sendEmail({
  to: emailaddress,
  subject: subject,
  htmlBody: loadMyFile(filename,folderID)}
);

function loadMyFile(filename,folderID){
  var fldr=DriveApp.getFolderById(folderID);
  var file=fldr.getFilesByName(filename);
  while(file.hasNext()){
    var fi=file.next();
    var target=fi.getName();
    if(target==filename){
      var s=fi.getBlob().getDataAsString();
    }
  }
  return s;
}