提交谷歌表单时发送电子邮件
Posted
技术标签:
【中文标题】提交谷歌表单时发送电子邮件【英文标题】:Send email when submitting google form 【发布时间】:2021-05-09 00:31:20 【问题描述】:我不是程序员,但只有当有人提交 GoogleForm 时,我才需要此脚本自动发送最后一行的电子邮件。我不知道该怎么做。这是我的脚本:
function sendMail()
var emailTemp = htmlService.createTemplateFromFile("Email");
var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Respostas ao formulário 1");
var data = ws.getLastRow("A:G").getValues();
data.forEach(function(row)
emailTemp.NOME = row[nome];
emailTemp.ID = row[id];
var htmlMessage = emailTemp.evaluate().getContent();
GmailApp.sendEmail(
row[email],
"Inscrição no curso de Aromaterapia Vanusa Feitosa",
"Seu E-mail não suporta HTML.",
name: "Instituto Vanusa Feitosa", htmlBody: htmlMessage
);
);
【问题讨论】:
我需要当有人提交 googleForm 时,脚本会自动发送电子邮件,但只发送最后一行,而不是所有行,以不发送重复的电子邮件。 【参考方案1】:您可以创建一个可安装的触发器。
可安装的触发器让 Apps 脚本在特定事件发生时自动运行函数。示例:提交的表单。
这将确保我们发送的电子邮件来自最新提交的表单。
如何创建可安装触发器?
打开您的 Apps 脚本项目。 点击左侧的触发警报。 点击右下角的添加触发器。 选择并配置您要创建的触发器类型。对于这种情况,请单击选择事件类型下方的下拉菜单并选择提交表单时 点击保存。
您的触发器应如下所示:
示例:
表格:
代码:
function sendEmail(e)
var response = e.namedValues;
var name = response['Name'];
var email = response['Email'];
var subject = "Inscrição no curso de Aromaterapia Vanusa Feitosa";
var templ = HtmlService.createTemplateFromFile('Email');
templ.name = name;
var message = templ.evaluate().getContent();
GmailApp.sendEmail(email, subject, '',
htmlBody: message
);
电子邮件.html:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<p>
Hello <?= name ?>
</p>
</body>
</html>
回应:
电子邮件:
参考资料:
Installable Triggers Event Objects sendEmail(recipient, subject, body, options)【讨论】:
以上是关于提交谷歌表单时发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
通过一次提交发送双表单,同时将电子邮件字段从第一个表单拉到第二个表单