【发布时间】:2020-08-08 01:38:49
【问题描述】:
我正在尝试为 google 脚本设置按计划运行的时间触发器,但出现以下错误。我正在尝试运行一个脚本,它结合了 3 个其他脚本。
当我手动运行它时,所有脚本都可以正常工作,并且可以毫无问题地触发电子邮件。
错误:
Exception: Invalid email: Internal
at sendFirstEmail(IntCode:65:13)
代码行(其中有 3 行,行号变化不大,我将其与“组合”脚本结合使用)- 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
});
}
}
}
我正在尝试使用时间触发器设置的组合脚本 (combine.gs)。
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();
}
【问题讨论】:
-
第 65 行是哪一行?
sendInitialEmail函数在哪里? -
道歉。编辑了问题。第 65 行是
MailApp.sendEmail({ -
AFAICT 电子邮件格式无效。提供调试详细信息。有关“疑难解答”,请参阅 tag info page
-
是邮件格式还是
MailApp.sendEmail函数的设置方式?因为我没有;手动触发时不会出现此错误。而且我的电子邮件格式是正确的。对不起,我对这一切都不熟悉,所以很难把它整理好。
标签: google-apps-script google-sheets