使用特定变量在Google表单提交上发送电子邮件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用特定变量在Google表单提交上发送电子邮件相关的知识,希望对你有一定的参考价值。
我对谷歌脚本非常新,我需要你的帮助。
我有一个表单,在它拥有的字段中,它有一个名为owner的字段,这只是一个名称。
我需要创建一个脚本,以便在提交表单时向所有者字段中列出的人员发送通知。
我知道如何直接在脚本上刻录电子邮件
function myFunction() {
// Fetch the email address
var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test").getRange("B2");
var emailAddress = emailRange.getValues();
// Send Alert Email.
var message = 'This is your Alert email!'; // Second column
var subject = 'Your Google Spreadsheet Alert';
MailApp.sendEmail(emailAddress, subject, message);
}
我迷失的问题是我知道如何识别电子邮件,具体取决于存储在另一个工作表中的所有者的名称。
谁能分享一些亮点?
您有四件事需要理解和研究。
1 - 创建可以创建为Installable“OnFormSubmit”触发器的脚本。 Documentation is here.。每次提交表单时都会执行此操作。这很容易做到,我在这个答案的最后添加了添加触发器屏幕的屏幕截图。
2 - 了解“OnFormSubmit”脚本捕获的信息。特别是它将返回表单提交的范围,您希望从中获取第7列(所有者)的值。
3 - 电子邮件表包含一组单独的数据。您可以通过getSheetByName
- documentation Ref引用它来获得它
4 - 您需要在“电子邮件”表单上查找“所有者”和“名称”值之间的匹配。如何找到与所有者匹配的选项有很多,但循环浏览“电子邮件”数据可能是最简单的在每个新行中,检查电子邮件名称是否与“所有者”匹配。当您找到匹配项时,您将获得随附的电子邮件地址(在电子邮件名称旁边的单元格中)。然后您可以将电子邮件发送为你测试过了。
此代码会调整您现有的代码以完成上述步骤。
function so5524531901(e) {
// this script as an Installable "OnFormSubmit" Trigger
//setup the spreadsheet
var ss = SpreadsheetApp.getActiveSpreadsheet();
//get the range from OnFormSubmit
var range = e.range;
//Logger.log("DEBUG: the range is "+range.getA1Notation());//DEBUG
// get the data for the range
var response = range.getValues();
// get the owner name from the form submission
var owner = response[0][7];
Logger.log("DEBUG: Owner = "+owner);// DEBUG
// get the emails list
var emailSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Emails");
// get ALL the data from this sheet
var emaildata = emailSheet.getDataRange().getValues();
// check how many rows of data
var emailLastRow = emailSheet.getLastRow();
// start the loop through the emails data
for (var i=1; i<emailLastRow; i++){
// if owner is equal to Email Name
if (owner == emaildata[i][0]){
// there is a match
//get the email address
var emailAddress = emaildata[i][1];
Logger.log("DEBUG: owner = "+emaildata[i][0]+", email address: "+emailAddress);// DEBUG
// Send Alert Email.
// Uncomment the following rows to declare the message, subject and then send the email.
// var message = 'This is your Alert email!'; // Second column
//var subject = 'Your Google Spreadsheet Alert';
//MailApp.sendEmail(emailAddress, subject, message);
}
}
}
以上是关于使用特定变量在Google表单提交上发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
我可以通过自动电子邮件从 Google 表单/Google 表格发送多个上传的附件吗?