根据表单输入发送电子邮件

时间:2021-04-07 12:33:45

标签: google-apps-script

我正在寻找可以根据表单输入发送电子邮件的谷歌应用程序脚本。 我试过了,但这不起作用:

  for(var i in mailCreator){
      if(mailCreator[i][0].match("...@abc.nl")!=null){
      MailApp.sendEmail({
        to: "123@def.com",
        subject: ADDED_TO_GROUP_SUBJECT,
        htmlBody: emailBody,
        })
      } 
     }```


It would be great if i can search for a certain value in the form input instead of an exact match. 

2 个答案:

答案 0 :(得分:0)

什么是mailCreator?它是一个数组,邮件的范围在哪里?或者尝试从表单中捕获一个字段? 编辑。

嗨,约翰,我认为这更适合您的需求。我了解您的目标是发送一封包含从表单中收集的数据的电子邮件。我用这个。

这会获取表单的范围并向您发送一封包含已定义变量数据的电子邮件。我们可以从表单中获取的范围中返回更多数据。

function SendMail() {
  var spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
  var listamail = spreadSheet.getSheetByName("name sheet");

  var dataRange = listamail.getDataRange();
  
  // Fetch values for each row in the Range.
  var data = dataRange.getValues();
  var text = 'Text for body.'; 
  for (var i = 1; i < data.length; i++) {
    (function(val) {
      var row = data[i];
      var emailAddress = row[1]; //position of email header — 1
      var name = row[0]; // position of name header — 1
      var message = text ;
      var subject = 'Write subjet or ne';
      MailApp.sendEmail(emailAddress, subject, message);
      })(i);
   }
}```

You can call this function whenever you submit the form. But u need edit this and only use last value of range.

答案 1 :(得分:0)

var ADDED_TO_GROUP_DOC_URL = 'https://docs.google.com/location of your document';

function onFormSubmit(e) {
var mailCreator = formValues['E-mailadres'][0].trim();
var subject = 'Subject title';
var addedToGroupDocId = DocumentApp.openByUrl(ADDED_TO_GROUP_DOC_URL).getId();
var emailBody = docToHtml(addedToGroupDocId);
MailApp.sendEmail({
        to: mailCreator, 
        subject: subject,
        htmlBody: emailBody,
        });
}```