我正试图找到一种方法来定位只有一个标签的电子邮件。我想删除具有特定标签且超过2周的邮件。但是,我希望脚本忽略除指定标签之外还有其他标签的所有电子邮件。
例如,标有'订阅'的电子邮件会被删除,但标有'订阅'的电子邮件 AND '保留!'不会。
我目前的版本将删除任何带有指定标签的电子邮件,无论是否应用任何其他标签。
我使用公开Gmail Cleaning Robot script Fred Mouniguet作为我的基础。
这是我到目前为止所拥有的:
function gmailCleaningRobot() {
var delayDays = 14; // will only impact emails more than 2 weeks old
var maxDate = new Date();
maxDate.setDate(maxDate.getDate()-delayDays); // what was the date at that time?
// Get all the threads labeled 'Subscriptions'
var label = GmailApp.getUserLabelByName("Subscriptions");
var threads = label.getThreads(0, 100);
// we archive all the threads if they're unread AND older than the limit we set in delayDays
for (var i = 0; i < threads.length; i++) {
if (threads[i].getLastMessageDate()<maxDate && threads[i].isUnread())
{
threads[i].moveToTrash();
}
}
}
非常感谢任何帮助!
答案 0 :(得分:0)
您可以在if语句中使用线程实例上的getLabels来解决此问题。
尝试以下方法。
if (threads[i].getLastMessageDate()<maxDate && threads[i].isUnread()
&& threads.getLabels().length == 1)