如果我使用SpreadsheetApp.getActiveSpreadsheet()
可以正常工作,但是我无法使用基于分钟的触发器来运行此脚本,因为它没有活动的电子表格。
我尝试使用SpreadsheetApp.openByUrl()
,该脚本在脚本编辑器中手动运行,并且在基于分钟的触发器中也没有错误。
我的问题是应该输出到我的实际工作表上的单元格没有更新。我认为这也不是将电子邮件标记为已读,但我已经不断收到很多邮件,以至于目前难以检查。
https://jsfiddle.net/29Ls3me4/1/
function myFunction() {
//var ss = SpreadsheetApp.getActiveSpreadsheet();
var ss = SpreadsheetApp.openByUrl("https://docs.google*****************************/edit");
var sheet = ss.getSheetByName("sheet1");
var threads = GmailApp.search ('label:unread "Thank you for your order!" -fwd: -re: -failure'); //search string
for (var i=0; i<threads.length; i++)
{
var messages = threads[i].getMessages();
for (var j=0; j<messages.length; j++)
{
var msg = messages[j].getPlainBody();
var sub = messages[j].getSubject();
var dat = messages[j].getDate();
var to = messages[j].getTo();
var dateString =
dat.getUTCFullYear() + "/" +
("0" + (dat.getUTCMonth()+1)).slice(-2) + "/" +
("0" + dat.getUTCDate()).slice(-2);
var name = messages[j].getSubject();
var invoicenumber = name.match(/\d/g);
if(invoicenumber == null){
invoicenumber = "null";
} else {
invoicenumber = invoicenumber.join("");
}
ss.appendRow([invoicenumber, dateString, to, sub, msg])
}
threads[i].markRead();
//threads[i].markUnread();
}
}
答案 0 :(得分:0)
好的简单编码眼球
ss.appendRow()
应该已经
sheet.appendRow()