[英]Why some of emails which sent by Google Apps Script with Form-submission trigger send twice?
I've noticed my sent email from Google App Script with Form-Submission Triggered and found that 3 in almost 300 of my emails are sent twice.我注意到我从 Google App Script 发送的 email 触发了表单提交,发现我的近 300 封电子邮件中有 3 封被发送了两次。 I have no idea about this and here is what i wrote.
我对此一无所知,这就是我写的。
function emailAsExcel(spreadsheetId,subject,message,fileName,link) {
var ss = SpreadsheetApp.openById(spreadsheetId);
var fileId = ss.getId();
var data = ss.getActiveSheet().getRange('A2:D2').getValues();
var url = 'https://docs.google.com/spreadsheets/d/'+fileId+'/export?format=xlsx';
var token = ScriptApp.getOAuthToken();
var response = UrlFetchApp.fetch(url, {
headers: {
'Authorization': 'Bearer ' + token
}
})
var blobs = response.getBlob().setName(fileName+'.xlsx');
var picblobs = DriveApp.getFileById(getIdFromUrl(link)).getBlob().setName(fileName + '.jpg');
var sender = "xxx@gmail.com"+","+ "yyy@gmail.com";
var email = sender;
MailApp.sendEmail(email,subject,message,{attachments: [blobs, picblobs]});
}
function genFile(){
var ss = SpreadsheetApp.openById('xxxxxxxxxxxx');
var sheet = ss.getSheetByName('yyyyy');
var lastRow = sheet.getRange(1,9,sheet.getLastRow()).getValues().filter(String).length;
Logger.log(lastRow);
var date = sheet.getRange('A'+lastRow).getValue();
var name = sheet.getRange('J'+lastRow).getValue();
var surname = sheet.getRange('K'+lastRow).getValue();
var number = sheet.getRange('E'+lastRow).getValue();
var prov = sheet.getRange('F'+lastRow).getValue();
var brand = sheet.getRange('G'+lastRow).getValue();
var link = sheet.getRange('I'+lastRow).getValue();
var subject = name+'_'+surname;
var message =
'customer fullname : '+ name +' '+surname+'\n'
+'num : '+ number + prov+'\n'
+'bra : '+ brand +'\n'
var fileName = name+ ' ' +surname;
Logger.log(link);
var destination = DriveApp.getFileById('aaaaaaaaaaaaaaaa').makeCopy().getId();
var newFile = SpreadsheetApp.openById(destination);
var newSheet = newFile.getSheetByName('bbbbbbbbb');
newSheet.getRange('A2').setValue(date);
newSheet.getRange('B2').setValue(name+' '+surname);
newSheet.getRange('C2').setValue(number);
newSheet.getRange('D2').setValue(prov);
newSheet.getRange('E2').setValue(brand);
newFile.setName(fileName);
emailAsExcel(destination,subject,message,fileName,link);
}
function getIdFromUrl(url) { return url.match(/[-\w]{25,}/); }
genFile();
}
I try to figure it out but I still do not know what happened, so I need you guys' advice.我试图弄清楚,但我仍然不知道发生了什么,所以我需要你们的建议。 Thank you in advance!
先感谢您!
This likely happens when you (or another Google account that has access to this script) has created multiple triggers.当您(或有权访问此脚本的其他 Google 帐户)创建了多个触发器时,可能会发生这种情况。
Go to https://script.google.com/home/triggers , choose your project and remove any duplicate onSubmit triggers. Go 到https://script.google.com/home/triggers ,选择您的项目并删除任何重复的 onSubmit 触发器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.