我真的很不熟悉Google Apps脚本,因此,如果我尝试的操作没有意义或无法实现,请告诉我。
每天我都会收到几封电子邮件,如下所示:
您的姓名:名字姓氏
电话号码:555 867 5309
电子邮件地址:FakeEmail@email.com
您需要什么帮助?请求某人制造。
我试图在收到这些电子邮件时将其自动发送到Google表格中的新行。
截至目前,我收到的每封电子邮件都带有标签“ myLabel”。然后运行以下脚本,该脚本是在此处找到的内容的稍作修改的版本:
function myFunction() {
var ss = SpreadsheetApp.getActiveSheet();
var label = GmailApp.getUserLabelByName("MyLabel");
var threads = label.getThreads();
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].getBody();
ss.appendRow([msg])
}
threads[i].removeLabel(label);
}
}
我正在尝试每15分钟使用计时器触发器运行此代码。我遇到的问题是,每次代码运行时,它都会从线程中的每封电子邮件中提取。我希望它只是从上次运行以来的新电子邮件中提取信息。任何建议将不胜感激。
答案 0 :(得分:0)
为什么在处理完消息后不将其标记为已读?这是我的一个脚本示例。
var pendingEmailLabel = "MyLabel";
var threads = GmailApp.getUserLabelByName(pendingEmailLabel).getThreads();
for (var t = 0; t < threads.length; ++t) {
var thread = threads[t];
var messages = thread.getMessages();
for (var m = 0; m < messages.length; ++m) {
var message = messages[m];
if (message.isUnread()) {
// INSERT YOUR CODE HERE THAT TAKES ACTION ON THE MESSAGE
message.markRead();
}
}
}
}