Email 谷歌表单。确认电子邮件脚本。使用编辑url
我在Google脚本中有两个工作触发器函数,当表单响应电子表格收到新提交时触发。一个是在电子表格中插入“编辑您的提交”url。另一个查找响应的电子邮件并向他们发送确认 我很难理解的是如何先填充url,然后再发送包含该url的电子邮件 (Google脚本与浏览器中的js调试不同:\) 设置触发器Email 谷歌表单。确认电子邮件脚本。使用编辑url,email,google-apps-script,google-sheets,google-forms,Email,Google Apps Script,Google Sheets,Google Forms,我在Google脚本中有两个工作触发器函数,当表单响应电子表格收到新提交时触发。一个是在电子表格中插入“编辑您的提交”url。另一个查找响应的电子邮件并向他们发送确认 我很难理解的是如何先填充url,然后再发送包含该url的电子邮件 (Google脚本与浏览器中的js调试不同:\) 设置触发器 函数初始化(){ var triggers=ScriptApp.getScriptTriggers(); for(触发器中的var i){ ScriptApp.deleteTrigger(触发器[i]);
函数初始化(){
var triggers=ScriptApp.getScriptTriggers();
for(触发器中的var i){
ScriptApp.deleteTrigger(触发器[i]);
}
ScriptApp.newTrigger(“发送确认邮件”)
.forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet())
.onFormSubmit()
.create();
assigneditURL();
}
在表单提交时,搜索标题为“客户电子邮件”的列,并向他们发送格式化的电子邮件
函数发送确认邮件(e){
试一试{
变量ss、cc、发送者名称、主题、列;
var消息、值、文本体、发送方;
var-url;
//这是您的电子邮件地址,您将进入CC
cc=Session.getActiveUser().getEmail();
//这将显示为发件人的名称
sendername=“XXXX”;
//可选,但更改以下变量
//为谷歌文档电子邮件设置自定义主题
主题=“填写表格:移动应用-客户问卷”;
//这是自动回复的主体
message=“此处为确认文本。
谢谢!
”;
ss=电子表格app.getActiveSheet();
columns=ss.getRange(1,1,1,ss.getLastColumn()).getValues()[0];
//这是提交者的电子邮件地址
sender=e.namedValues[“客户端电子邮件”].toString();
//仅包括非空的表单值
for(列中的变量键){
var key=列[键];
如果(例如,名称值[键]){
message+=key+::“+e.namedValues[key]+”
”;
}
}
textbody=message.replace(“
”,“\n\n”);
GmailApp.sendmail(发件人、主题、正文、,
{cc:cc,name:sendername,htmlBody:message});
}捕获(e){
Logger.log(例如toString());
}
}
单独的功能。查找表单并将编辑URL应用于第26列
函数assignEditUrls(){
var form=格式openById('10BVYipGhDa_AthabHE-xxxxxx-hg');
//在此处输入表单ID
var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Form Responses');
//根据需要更改图纸名称
var data=sheet.getDataRange().getValues();
var urlCol=26;//应该填充URL的列号;A=1,B=2等
var responses=form.getResponses();
var时间戳=[]、URL=[]、结果URL=[];
对于(var i=0;i
当触发函数依赖于同一事件时,程序员无法直接控制触发函数的调用顺序
但在您的情况下,有两种选择
assignEditUrls()
设置为唯一的触发器函数,并让它在完成任务后调用SendConfirmationMail()
)SendConfirmationMail()
检查编辑URL的可用性,如果URL还没有准备好,则调用它。(在循环中,直到准备好。)