Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 谷歌脚本:一封电子邮件,由一个用户给在谷歌驱动器中编译的表单提供答案_Email_Google Apps Script_Google Drive Api - Fatal编程技术网

Email 谷歌脚本:一封电子邮件,由一个用户给在谷歌驱动器中编译的表单提供答案

Email 谷歌脚本:一封电子邮件,由一个用户给在谷歌驱动器中编译的表单提供答案,email,google-apps-script,google-drive-api,Email,Google Apps Script,Google Drive Api,我用谷歌硬盘创建了一个表单。 为了向回答者提供他们所写内容的摘要,我想使用他们在表格中插入的电子邮件向他们每人发送一封电子邮件 我认为在表单结果的电子表格中安装一个脚本可以做到这一点,它可以在每次记录新行时发送电子邮件 我(在这个论坛上)发现了以下脚本,不幸的是,它是一个在某个电子表格中带有修改的电子邮件警报 function sendNotification() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.g

我用谷歌硬盘创建了一个表单。 为了向回答者提供他们所写内容的摘要,我想使用他们在表格中插入的电子邮件向他们每人发送一封电子邮件

我认为在表单结果的电子表格中安装一个脚本可以做到这一点,它可以在每次记录新行时发送电子邮件

我(在这个论坛上)发现了以下脚本,不幸的是,它是一个在某个电子表格中带有修改的电子邮件警报

function sendNotification() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var cell = ss.getActiveCell().getA1Notation();
var row = sheet.getActiveRange().getRow();
var cellvalue = ss.getActiveCell().getValue().toString();
var recipients = "me@gmail.com";
var message = '';
if(cell.indexOf('G')!=-1){ 
message = sheet.getRange('D'+ sheet.getActiveCell().getRowIndex()).getValue()
}
var subject = 'Update to '+sheet.getName();
var body = sheet.getName() + ' has been updated. Visit ' + ss.getUrl() + ' to view     the changes on row: «' + row + '». New comment: «' + cellvalue + '». For message:  «' + message + '»';
MailApp.sendEmail(recipients, subject, body);

};

这是我需要的帮助。脚本将向单个预定义地址发送电子邮件。是否可以让脚本从相关行的某个单元格中获取收件人电子邮件(例如,电子邮件记录在电子表格的C栏中),并向他发送包含同一行的其他单元格(例如D栏和E栏)获取的某些文本的消息?

使用您在代码中定义的变量(工作表,行):

//返回C列中的电子邮件地址
var recipient=sheet.getRange(第3行).getValue();
//返回D列和E列中的值
var info1=sheet.getRange(第4行).getValue();
var info2=sheet.getRange(第5行).getValue();
请注意,这是一种获取值的“昂贵”方法,最好在一次调用中将所有值作为数组获取,然后通过索引引用它们,如下所示

//在一次调用中获取所有必需的值
var values=sheet.getRange(第3、1、3行).getValues();
//使用数组索引定义变量
var收件人=值[0];
var info1=值[1];
var info2=值[2];

你真是太好了。非常感谢。我已经按照你写的修改了剧本。现在它从行中获取电子邮件和文本。但我认为它接受活动行中的文本(如果在打开的文件中选择了该行)。我无法让脚本在电子表格中编译新行时将电子邮件发送到以表单形式编写的电子邮件…识别正确的行不在原始问题的范围内!:)您可以使用
var row=sheet.getLastRow()
但要注意,如果其他人在函数完成之前提交表单(我假设这会触发您的函数),则会出现混乱。围绕这一点编写代码很快就会变得复杂。谢谢,我会在放弃之前尝试一下!:-)对不起我的英语!看看表单提交触发器,有一个事件包含您需要的所有信息,包括行号甚至答案。