Google 用于发送电子邮件的表单脚本
Google form script to send email
关于在提交 google 表单后发送电子邮件的脚本,我遇到了一些问题。
因此,当我 运行 我的代码收到此错误消息时: ReferenceError: getValues is not defined at onFormSubmit
您可以在下面找到脚本
function onFormSubmit(e) {
Logger.log("[METHOD] onFormSubmit");
sendEmail(e.range);
}
function sendEmail(range) {
Logger.log("[METHOD] sendEmail");
// FETCH SPREADSHEET //
var values = range.getValues();
var row = values[0];
// EXTRACT VALUES //
var DateRequest = values[0]
var TypeRequest = values[1]
var StartDate = values[2]
var EndDate = values[3]
var Observation = values[4]
var TLemail = values[5]
// CLEAN VARIABLES //
if (Observation.length == 0) Explain = "None";
// PREPARE EMAIL //
var emailRecipients = +TLemail+"@google.com";
var emailSubject = TypeRequest;
var emailBody = "<h3>Vacation Request:</h3><hr /> \
<p> \
<strong>Type or request:</strong><br /> \
"+TypeRequest+" \
</p><p> \
<strong>Date of Request:</strong><br /> \
"+DateRequest+" \
</p><p> \
<strong>Start Date:</strong><br /> \
"+StartDate+" \
</p><p> \
<strong>End Data:</strong><br /> \
"+EndDate+" \
</p><p> \
<strong>Aditional comment:</strong><br /> \
"+Observation+" \
</p><p> \
</p>";
// SEND EMAIL //
MailApp.sendEmail({
to: emailRecipients,
subject: emailSubject,
htmlBody: emailBody
});
}
提前致谢
替换:
var values = range.getValues();
和
var values = e.range.getValues();
您没有在代码中的任何地方定义range
- 要么你自己手动定义
- 或者,您使用 event objects 触发器
onFormSubmit
提供的
一种选择是使用事件对象 range
:
function onFormSubmit(e) {
var values = e.range.getValues();
相当于
function onFormSubmit(event) {
var values = event.range.getValues();
或
function onFormSubmit(hello) {
var values = hello.range.getValues();
- 或者,更简单,您直接检索
e.values
所以:
function onFormSubmit(e) {
var values = e.values;
var DateRequest = values[0];
var TypeRequest = values[1];
...
关于在提交 google 表单后发送电子邮件的脚本,我遇到了一些问题。
因此,当我 运行 我的代码收到此错误消息时: ReferenceError: getValues is not defined at onFormSubmit
您可以在下面找到脚本
function onFormSubmit(e) {
Logger.log("[METHOD] onFormSubmit");
sendEmail(e.range);
}
function sendEmail(range) {
Logger.log("[METHOD] sendEmail");
// FETCH SPREADSHEET //
var values = range.getValues();
var row = values[0];
// EXTRACT VALUES //
var DateRequest = values[0]
var TypeRequest = values[1]
var StartDate = values[2]
var EndDate = values[3]
var Observation = values[4]
var TLemail = values[5]
// CLEAN VARIABLES //
if (Observation.length == 0) Explain = "None";
// PREPARE EMAIL //
var emailRecipients = +TLemail+"@google.com";
var emailSubject = TypeRequest;
var emailBody = "<h3>Vacation Request:</h3><hr /> \
<p> \
<strong>Type or request:</strong><br /> \
"+TypeRequest+" \
</p><p> \
<strong>Date of Request:</strong><br /> \
"+DateRequest+" \
</p><p> \
<strong>Start Date:</strong><br /> \
"+StartDate+" \
</p><p> \
<strong>End Data:</strong><br /> \
"+EndDate+" \
</p><p> \
<strong>Aditional comment:</strong><br /> \
"+Observation+" \
</p><p> \
</p>";
// SEND EMAIL //
MailApp.sendEmail({
to: emailRecipients,
subject: emailSubject,
htmlBody: emailBody
});
}
提前致谢
替换:
var values = range.getValues();
和
var values = e.range.getValues();
您没有在代码中的任何地方定义range
- 要么你自己手动定义
- 或者,您使用 event objects 触发器
onFormSubmit
提供的
一种选择是使用事件对象 range
:
function onFormSubmit(e) {
var values = e.range.getValues();
相当于
function onFormSubmit(event) {
var values = event.range.getValues();
或
function onFormSubmit(hello) {
var values = hello.range.getValues();
- 或者,更简单,您直接检索
e.values
所以:
function onFormSubmit(e) {
var values = e.values;
var DateRequest = values[0];
var TypeRequest = values[1];
...