因此,我一直试图在onFormSubmit函数内通过MailApp发送电子邮件。我最近了解到,简单触发器没有扩展访问邮件等服务的权限,但具有可安装的访问权限。
因此,我去网上搜索如何制作可安装的触发器,我丝毫不了解他们的google文档,也没有在他们的任何地方找到任何有用的视频/论坛来简化他们的工作了解
因此,我转向你,你是一群天才。
通过脚本编辑器,我手动调用
function CreateFormSubmitTrigger() {
var ss = SpreadsheetApp.getActive();
ScriptApp.newTrigger('formDone')
.forSpreadsheet(ss)
.onFormSubmit()
.create()
}
每次运行它时,它都会返回“您无权调用newTrigger(第7行,文件“代码”)”
我要为其创建触发器的功能如下,当我在当前项目触发器>电子表格> onFormSubmit上具有此功能时。也不起作用。
function formDone(e) {
Utilities.sleep(3000)
var range = e.range;
var ss = range.getSheet();
var row = range.getRowIndex();
var tactics =
Sheets.Spreadsheets.Values.get('id', "A:AQ"+row);
var headers =
Sheets.Spreadsheets.Values.get('id', 'A1:U1');
var templateID = "id"
var i = 0; i < tactics.values.length;
var Timestamp = tactics.values[i][0];
var IDCFREF = tactics.values[i][2];
var raisedby = tactics.values[i][4];
var AccMan = tactics.values[i][6];
var Contrib = tactics.values[i][7];
var Contract = tactics.values[i][8];
var CompName = tactics.values[i][9];
var ValidFrom = tactics.values[i][10];
var ValidTo = tactics.values[i][11];
var Freq = tactics.values[i][12];
var PDetailFreq = tactics.values[i][13];
var BillType = tactics.values[i][14];
var TypeOfRebate = tactics.values[i][15];
var RebateDetails = tactics.values[i][16];
var RTarget = tactics.values[i][17];
var GiveDeets = tactics.values[i][19];
var WhyGiveRebate = tactics.values[i][20];
var documentID = DriveApp.getFileById(templateID).makeCopy().getId();
console.log({message: IDCFREF})
if (DriveApp.getFilesByName("Rebate " + IDCFREF + " Request").hasNext()){
DriveApp.getFilesByName("Rebate " + IDCFREF + " Request").next().setTrashed(true)
} else {
}
DriveApp.getFileById(documentID).setName('Rebate ' + IDCFREF + ' Request');
var body1 = DocumentApp.openById(documentID).getBody();
var header = DocumentApp.openById(documentID).getHeader();
header.replaceText('##IDCF##', IDCFREF)
body1.replaceText('##REF##', IDCFREF)
body1.replaceText('##RAISED##', raisedby)
body1.replaceText('##ACCMAN##', AccMan)
body1.replaceText('##CONTRIB##', Contrib)
body1.replaceText('##SIGNED##', Contract)
body1.replaceText('##NAME##', CompName)
body1.replaceText('##FROM##', ValidFrom)
body1.replaceText('##TO##', ValidTo)
body1.replaceText('##FREQ##', Freq)
body1.replaceText('##BESPOKE##', PDetailFreq)
body1.replaceText('##BILL##', BillType)
body1.replaceText('##TYPE##', TypeOfRebate)
body1.replaceText('##DEETS##', RebateDetails)
body1.replaceText('##TARGET##', RTarget)
body1.replaceText('##FULL##', GiveDeets)
body1.replaceText('##ELAB##', WhyGiveRebate)
Utilities.sleep(5000)
var filemail = DriveApp.getFileById(documentID)
if(DocumentApp.openById(documentID).getBody().findText("#")) {
MailApp.sendEmail({
to: "email",
subject: "Rebate Request " + IDCFREF + " - Pending",
body: "",
attachments: [filemail]
})
} else {
MailApp.sendEmail({
to: "email",
subject: "Rebate Request " + IDCFREF + " - Complete",
body: "rebates",
attachments: [filemail]
});
}
}
对情况的任何了解都将得到无与伦比的赞赏。
欢呼声