使用 sendEmail() 接收重复的电子邮件

Receiving duplicate emails with sendEmail()

我尝试了 MailApp.sendEmail()GmailApp.sendEmail()onFormSubmit 发送电子邮件确认并以多封重复电子邮件结束(多达 6 封)。代码如下所示:

function sendEmailConf_(ss, email, session) {
  Logger.log("sendEmailConf_ email: %s for session: %s", email, session);
  var formUrl = ss.getFormUrl();             // Use form attached to sheet
  var form = FormApp.openByUrl(formUrl);
  var formResponses = form.getResponses();
  Logger.log("Count of form responses: %s", formResponses.length);
  for (var i = 0; i < formResponses.length; i++) {
    if (formResponses[i].getRespondentEmail() == email) {
      Logger.log("Sending email to: %s for session: %s", email, session[0]);
      GmailApp.sendEmail(
        email,
        'Confirmation for registration of: ' + session[0] + ', ' + getSessionSchedStr(session),
        ('Thanks for registering!\n\n' + getResponseAsText(formResponses[i]) + '\n\n' +
               'You may change your response using this URL: ' + formResponses[i].getEditResponseUrl())
      );
    }
  }
}

使用脚本脚本和日志语句,我确认 sendEmail() 只被调用一次,并且电子邮件是一个包含单个电子邮件地址的字符串。我收到的电子邮件具有完全相同的主体并且是在同一时间收到的,并且它们都具有相同的发件人和收件人地址(都是我的,因为我正在测试它)。有人知道这里出了什么问题吗?

编辑:刚观察到重复计数每达到 运行 就会增加 1。我刚刚又试了一次,收到了 7 封新邮件,都是完全重复的(与之前的 6 封不同)。我对导致这种行为的原因一无所知。

打开脚本编辑器并选择资源 -> 当前项目触发器。确保只有一个触发器与脚本关联。

如果您已与多个用户共享该脚本,则必须从可能已授权该脚本的每个用户的帐户重复此操作。