提交谷歌表单时发送电子邮件

时间:2021-02-04 16:53:11

标签: javascript gmail gmail-api google-sheets-api

我不是程序员,但我需要这个脚本来发送最后一行的自动电子邮件,只有当有人提交 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}  
    );

});   

1 个答案:

答案 0 :(得分:1)

您可以创建一个可安装的触发器。

<块引用>

可安装触发器可让 Apps 脚本在发生特定事件时自动运行功能。示例:提交的表单。

这将确保我们发送的电子邮件来自最新提交的表单。

如何创建可安装触发器?

<块引用>
  • 打开您的 Apps 脚本项目。
  • 在左侧,点击触发警报。
  • 点击右下角的添加触发器。
  • 选择并配置您要创建的触发器类型。对于这种情况,点击选择事件类型下方的下拉菜单,然后选择表单提交
  • 点击保存。

您的触发器应如下所示:

enter image description here

示例:

表格:

enter image description here

代码:

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
  });
}

Email.html:

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <p>
    Hello <?= name ?>
    </p>
  </body>
</html>

回复:

response

电子邮件:

enter image description here

参考: