【发布时间】:2017-11-27 01:41:39
【问题描述】:
如何使用html文件作为htmlBody?
我知道我可以使用 MailApp.sendEmail 发送电子邮件。 而且我知道我可以用 html 代码设置 htmlBody。 但是我的 html 代码很长并且有很多行,所以我想将它们写在一个额外的 html 文件中,而不仅仅是使用一个带有这么多“+”的 gs 文件。 我该怎么做?
【问题讨论】:
如何使用html文件作为htmlBody?
我知道我可以使用 MailApp.sendEmail 发送电子邮件。 而且我知道我可以用 html 代码设置 htmlBody。 但是我的 html 代码很长并且有很多行,所以我想将它们写在一个额外的 html 文件中,而不仅仅是使用一个带有这么多“+”的 gs 文件。 我该怎么做?
【问题讨论】:
这个示例脚本怎么样?请将此视为几个答案之一。
当您将 HTML 正文作为 HTML 文件放入脚本编辑器时,您可以使用HtmlService.createHtmlOutputFromFile() 来实现它。示例脚本如下。
var blob = HtmlService.createHtmlOutputFromFile("### HTML filename without extension ###").getBlob();
MailApp.sendEmail({
to: "### Your e-mail address ###",
subject: "sample subject",
htmlBody: blob.getDataAsString()
});
如果我误解了你的问题,我很抱歉。
如果您在运行脚本时想要更新表,可以使用此示例脚本。
var t = HtmlService.createHtmlOutputFromFile("### HTML filename without extension ###");
t.data = ["sample1", "sample3", "sample3"];
var blob = t.evaluate().getBlob();
MailApp.sendEmail({
to: "### Your e-mail address ###",
subject: "sample subject",
htmlBody: blob.getDataAsString()
});
<table>
<? for (var i = 0; i < data.length; i++) { ?>
<tr>
<td><?= data[i] ?></td>
</tr>
<? } ?>
</table>
【讨论】:
HtmlService.createHtmlOutputFromFile(filename) 的 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;
}
【讨论】: