【发布时间】:2019-10-10 19:46:24
【问题描述】:
我正在尝试将通过电子邮件发送的 html 中的文本更改为我定义的 JS 变量。重要的是我在 Google Scripts 中执行此操作并拥有 2 个文件 Code.gs 和 Email.html。
似乎我的 html 无法访问 JS 变量,但我不确定我哪里出错了。我参考了一些类似的帖子,并尝试了一种不同的方法,但无法让它发挥作用。如果有人有建议,那就太好了。
代码.gs
var JSname;
function Email() {
JSname = 'It works!'
var theEmail = 'myemail@gmail.com';
var theSubject = 'Email subject line';
var template = HtmlService.createTemplateFromFile('Email');
var message = template.evaluate().getContent();
MailApp.sendEmail({ to: theEmail, subject: theSubject, htmlBody: message });
return
}
电子邮件.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<span id="HTMLname">[Text here]</span>
<script type="text/javascript" src="Code.gs">
document.getElementById("HTMLname").innerHTML = JSname;
</script>
</body>
</html>
【问题讨论】:
-
您在访问模板上设置的属性时遇到问题吗?如这里:developers.google.com/apps-script/reference/html/…
-
没有与电子邮件 html 关联的 Javascript,即 htmlBody 参数。该 htmlBody 字符串中的所有内容都必须在字符串中定义。所以你可以假设你在body标签中。不要处理 DocType、html、head 或 script 标签。它们在电子邮件中都毫无意义。
-
在发送电子邮件之前,您可以使用 Utilities.formatString() 服务器端替换您想要的任何变量。
标签: javascript html google-apps-script