Google apps script 在Google脚本中使用时间触发器时出错
我正试图设置一个时间触发器,让google脚本按计划运行,但出现以下错误。我正在尝试运行一个脚本,其中包含3个其他脚本 当我手动运行它时,所有脚本都可以正常工作,并且触发电子邮件时不会出现问题 错误:Google apps script 在Google脚本中使用时间触发器时出错,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正试图设置一个时间触发器,让google脚本按计划运行,但出现以下错误。我正在尝试运行一个脚本,其中包含3个其他脚本 当我手动运行它时,所有脚本都可以正常工作,并且触发电子邮件时不会出现问题 错误: Exception: Invalid email: Internal at sendFirstEmail(IntCode:65:13) 代码行(其中有3行,行号几乎没有变化,我将其与“combine”脚本结合使用)-IntCode.gs function getDataSheet() {
Exception: Invalid email: Internal
at sendFirstEmail(IntCode:65:13)
代码行(其中有3行,行号几乎没有变化,我将其与“combine”脚本结合使用)-IntCode.gs
function getDataSheet() {
sheet = SpreadsheetApp.getActiveSheet();
startRow = 2; // First row of data to process
numRows = 200; // Number of rows to process
startCol = 1; //First column of data to process
numCols = 21; // Number of columns to process
var dataRange = sheet.getRange(startRow, startCol, numRows, numCols);
// Fetch values for each row in the Range.
var data = dataRange.getValues();
return data;
}
function sendFirstEmail() {
var complete = "";
var first = "Yes";
var data = getDataSheet();
for (var i = 0; i < data.length; i++) {
var row = data[i];
var isFirst = row[18];
var isComplete = row[11];
var user = row[0];
var detail = row[1];
var description = row[2];
var period = row[3];
var name_1 = row[4];
var to_email_1 = row[5];
var to_email_2 = row[6];
var cc_email_1 = row[7];
var cc_email_2 = row[8];
var cc_email_3 = row[9];
var email_1 = "email ID";
var date = row[10];
if(isFirst == first && isComplete == complete ) {
var to_email_1 = row[5];
var to_email_2 = row[6];
var cc_email_1 = row[7];
var cc_email_2 = row[8];
var cc_email_3 = row[9];
var email_1 = "name.lastname@gmail.com";
var period = row[3];
var message = HtmlService.createHtmlOutputFromFile('FirstMail').getContent();
var date = Utilities.formatDate( new Date(row[10]), "GMT" , "dd/MMM/yyyy" );
var file = row[12];
message = message.replace("%user", user);
message = message.replace("%detail", detail);
message = message.replace("%description", description);
message = message.replace("%period", period);
message = message.replace("%name_1", name_1);
message = message.replace("%date", date);
message = message.replace("%file", file);
MailApp.sendEmail({
name: 'display name',
to: to_email_1 + ", " + to_email_2,
replyTo: email_1,
cc: email_1 + ", " + cc_email_1 + ", " + cc_email_2 + ", " + cc_email_3,
subject: "[TEST] " + detail + " on " + date,
htmlBody: message
});
}
}
}
正如在报告中所写
例外:无效电子邮件:内部
发送第一封电子邮件时(内部代码:65:13)
表示
内部
不是有效的电子邮件。考虑回溯和记录行5和6:<代码>控制台。log(行(5))< /代码> /p>哪行为65?sendInitialEmail
功能在哪里?抱歉。编辑了这个问题。第65行是MailApp.sendmail({
AFAICT)电子邮件格式无效。请提供调试详细信息。有关“疑难解答”,请参阅这是电子邮件格式还是函数MailApp.sendmail
的设置方式?因为手动触发时我没有收到此错误。而且我的电子邮件格式是正确的。很抱歉,我对所有这些都不熟悉,所以很难对其进行排序。例如var to_email_1=行[5];console.log(行[5];var to_email_2=行[6];console.log(第[6]行);
所以我现在手动运行了“Combine”脚本(它有sendFirstEmail
,sendSecondEmail
等),它给出了上面的错误。但是当我只运行“sendFirstEmail”脚本时,我没有得到上面问题中的错误消息。使用了console.log(第[5]行)
也一样,它可以很好地显示电子邮件地址。但是日志中的两行之间有空行。@Spear然后删除空行。另外,您的工作表中是否有名为“Internal”的内容?没有内部内容。奇怪的是,它现在开始工作了。我只是刚刚删除并再次粘贴了代码。
function combine() {
var ss = SpreadsheetApp.openById("google sheet ID");
// https://docs.google.com/spreadsheets/d/id_is_here/
var sh = ss.getSheetByName("Sheet1"); // name of the actual sheet ("Sheet 1" for example)
Logger.log('combine ran!');
sendFirstEmail();
sendSecondEmail();
sendFinalEmail();
}