我有一个将回复发送到电子表格的表格。然后,电子表格会在未将回复标记为已审阅时发送电子邮件。我想保留每次从脚本发送电子邮件的日志。
我已经在此处创建电子表格和应用程序脚本:https://docs.google.com/spreadsheets/d/1fplP0xdzunRk4e4CRU3-csbyf6iuD8fjpyYUZM2SxfU/edit?usp=sharing
function sendDay3ReminderEmail() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = 1000; // Number of rows to process
var numOfColumns = sheet.getLastColumn();
var dataRange = sheet.getRange(startRow, 1, numRows,
numOfColumns);
var data = dataRange.getValues();
var dt=new Date();
var dv=new
Date(dt.getFullYear(),dt.getMonth(),dt.getDate()).valueOf();
for (var i=0;i<data.length;i++) {
var row = data[i];
var reportNumber = row[1]; // 2nd column B
var emailAddress = row[22]; // 23rd column W
var ssLink= row[23]; // 24th column X
var message = ("Report #"+reportNumber+" on the Bully Report
Response Spreadsheet has been not been reviewed. Please review the
issue and indicate its status on the response spreadsheet found
here: "+ssLink); // sixth column
var d=new Date(row[21]);// 22nd column V
if (!row[0] && new
Date(d.getFullYear(),d.getMonth(),d.getDate()).valueOf()<=dv) {
var subject = ("Your attention is needed on Bullying Report
Number "+reportNumber);
MailApp.sendEmail(emailAddress, subject, message);
}
}
}
我的目标是每次运行脚本并发送电子邮件时记录一些东西。
答案 0 :(得分:1)
作为一种解决方法,我们建议在第一封电子邮件之后发送第二封电子邮件,该电子邮件仅用于跟踪操作(因此它将包含日期,时间,报告编号,第一封电子邮件的收件人...)。您可以将第二封电子邮件发送到您自己的邮件帐户或日志邮件。请考虑收件箱size quotas,以防止丢失日志。我们希望这种解决方法对您有用。请随时添加信息,以便我们为您提供更好的帮助。
更新
在研究了新方法之后,我现在建议使用logging environment。您可以在文档中看到,有很多方法可以在Apps Script中存储日志。一种基本的方法是使用getLog
方法来记录日志(即在文档,电子表格,邮件等上)。您可以在每次发送邮件时使用stackdriver logs保存行;如果您的项目在Google Cloud上,则此选项特别有用。还有Properties Service,它提供了一些用于在各种情况下进行日志记录的操作。如其文档中所述。请注意logging quotas,以防止信息丢失。如果您需要这种新方法的帮助,或者我的信息不够清楚,请随时写信。