从gmail脚本中删除“读取”逻辑

时间:2015-03-06 06:57:27

标签: google-apps-script

我对谷歌应用程序脚本相当新,希望你能帮助我...我相信这是一个简单的问题。

我正在运行以下脚本来存档旧电子邮件。它目前只存档阅读的电子邮件,但我想让它存档这些标签的消息,无论它们是读还是未读。任何帮助将不胜感激!

function archiveInbox4() {
// Every thread in your Inbox that is read, older than fourteen days, and not labeled "delete me".    
var threads = GmailApp.search('label: inbox older_than:14d label:"Calendar"|"wacuho-acuho-i"|"professional-organizations"');    
  for (var i = 0; i < threads.length; i++) {
    threads[i].moveToArchive();

1 个答案:

答案 0 :(得分:0)

您可以先将电子邮件标记为已读,然后将其存档为已读电子邮件。

示例代码如下:

function markArchivedAsRead() {
  var threads = GmailApp.search('label:unread -label:inbox');
  GmailApp.markThreadsRead(threads);
};

但是,此操作最多只能应用于100个线程。要解决此问题,您必须手动搜索"is:unread"并在运行脚本之前将其全部标记为已读,以便以干净的平板开始。该脚本每次运行只能处理100个线程,所以如果你在第一次运行时给它超过100个,那么这显然会破坏它。请参阅参考link

您还可以使用此代码通过Google Apps脚本完成此操作:

function markArchivedAsRead() {
  var threads = GmailApp.search('is:unread');
  for (var i = 0; i < threads.length; i++) {
    GmailApp.markThreadRead(threads[i]);
    }
};
相关问题