【问题标题】: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 时,脚本会自动发送电子邮件,但只发送最后一行,而不是所有行,以不发送重复的电子邮件。

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


【解决方案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>

回应:

电子邮件:

参考资料:

【讨论】:

    猜你喜欢
    • 2015-05-06
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 2016-08-01
    • 1970-01-01
    • 2021-01-07
    • 2015-03-28
    相关资源
    最近更新 更多