【发布时间】:2018-03-29 15:46:21
【问题描述】:
我有一个过滤器,可以在所有收到的电子邮件上添加“未处理”标签。
然后,Google 脚本每分钟搜索任何带有“未处理”标签的电子邮件线程,处理邮件,并有条件地将标签应用于相应线程。
我不知道我做错了什么,但只有一些处理过的线程得到了标签。而且它是随机工作的……例如,6 个线程中只有 3 个获得了标签,或者 3 个线程中只有 1 个。
我必须重新应用“未处理”标签,然后再次运行脚本来修复它们。
function processGmail() {
var startTime = new Date().getTime();
var mailerRegex = /X-Mailer:(.*)/g;
var scannerLabel = GmailApp.getUserLabelByName("Scanner");
var unprocessedLabel = GmailApp.getUserLabelByName("unprocessed");
var countMessages = 0;
GmailApp.search("label:unprocessed").forEach(
function(emailThread) {
emailThread.getMessages().forEach(
function(message) {
var raw = message.getRawContent();
var result;
var doReturn = false;
while((matches = mailerRegex.exec(raw)) !== null) {
if (matches.some(function(match){return match.indexOf('Canon MFP') >= 0;})) {
emailThread.addLabel(scannerLabel);
emailThread.moveToArchive();
doReturn = true;
break;
}
}
emailThread.removeLabel(unprocessedLabel);
++countMessages;
if (doReturn) {
return;
}
}
);
}
);
var endTime = new Date().getTime();
Logger.log("Processed " + countMessages + " in " + (endTime-startTime) + "ms.");
}
【问题讨论】:
-
确保您回信给 Gmail 邮件已更改,例如刷新它们?见stackoverflow.com/questions/49540711/…
-
感谢您的参考。它似乎没有帮助 OP :/