【发布时间】:2015-01-27 04:30:01
【问题描述】:
我有一个脚本,可以在编辑电子表格时发送电子邮件。脚本运行,但 MailApp 语句不起作用。
这里是执行日志:
[15-01-27 14:15:17:951 EST] SpreadsheetApp.getActiveSpreadsheet() [0 秒] [15-01-27 14:15:17:951 EST] Spreadsheet.getActiveRange() [0 秒] [15-01-27 14:15:17:952 EST] Range.getRow() [0 秒] [15-01-27 14:15:17:952 EST] Range.getLastRow() [0 秒] [15-01-27 14:15:17:952 EST] Range.getColumn() [0 秒] [15-01-27 14:15:17:952 EST] Range.getLastColumn() [0 秒] [15-01-27 14:15:17:955 EST] 开始执行 [15-01-27 14:15:17:969 EST] Logger.log([{"range":{"rowStart":79,"rowEnd":79,"columnEnd":6,"columnStart":6} ,"source":{},"value":"Xxxx","user":{}}, []]) [0 秒] [15-01-27 14:15:17:969 EST] SpreadsheetApp.getActiveSpreadsheet() [0 秒] [15-01-27 14:15:18:058 EST] Spreadsheet.getSheets() [0.088 秒] [15-01-27 14:15:18:145 EST] Spreadsheet.getSheets() [0.086 秒] [15-01-27 14:15:18:145 EST] Logger.log([客户行 = 79, []]) [0 秒] [15-01-27 14:15:18:145 EST] Sheet.getRange([79, 6]) [0 秒] [15-01-27 14:15:18:233 EST] Sheet.getDataRange() [0.087 秒] [15-01-27 14:15:18:324 EST] Range.getValues() [0.091 秒] [15-01-27 14:15:18:327 EST] 执行失败:您无权调用 sendEmail(第 21 行,文件“代码”)[0.368 秒 总运行时间]
我在其他脚本上使用了 mailApp.sendEmail,它运行良好。这是附加到电子表格/表单的第二个脚本,第一个脚本还从 formSubmit 发送电子邮件。我已允许所有触发器和权限。
任何帮助表示赞赏 代码如下:
function onEdit(e) {
Logger.log(JSON.stringify(e));
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheets()[0]
var sheet2 = ss.getSheets()[4];
var column = Number(e.range.columnStart);
if(column != 6){return};
var Customer = Number(e.range.rowStart);
Logger.log('Customer row = '+Customer);
var name = sheet1.getRange(Customer,6);
var emailArray = sheet2.getDataRange().getValues();
for (i=0;i < emailArray.length;i++){
if (name == emailArray[i][0]) {
var email_address = emailArray[i][1];
}
}
var subject = "Job assignment";
var body = "X";
MailApp.sendEmail(email_address,subject,body);
}
【问题讨论】:
-
脚本运行,但不完全。它在第 21 行失败。错误表明这是调用
sendEmail函数的权限问题。sendEmail函数是否在同一个项目中?我们需要看一些代码。 -
上面添加的代码,不知道为什么有些是代码格式,其余的不是,对不起
-
作为以下答案的补充,请在此处阅读有关简单触发限制的文档:developers.google.com/apps-script/guides/triggers
-
谢谢大家,我现在有另一个错误,我在电子邮件中收到了未定义的错误。似乎 var name = sheet1.getRange(Customer,6);没有获取值来馈送数组?
-
好的,感谢所有提供帮助的人。我已经解决了第二个问题,使用
sheet1.getSheetValues(Customerrow,2,1,1);选择正确的值并提供数组和电子邮件
标签: javascript email google-apps-script triggers google-sheets