如何使用谷歌应用程序脚本将延缓的电子邮件标记为未读?

问题描述 投票:0回答:1

我们很多人要求谷歌有一个选项,可以在 Gmail 中将未推迟的电子邮件标记为未读,但不幸的是,这没有发生。我说的是那些电子邮件。

ChatGPT 建议使用 google-app-scripts,但我没有找到正确的 API 来确定在某个时间间隔(例如过去 7 天)内哪些电子邮件已取消延后。

enter image description here

这是ChatGPT提出的代码,但是

snoozed
不是标签,可以改进吗?谢谢你

function markUnsnoozedEmailsAsUnread() {
  var threads = GmailApp.search('label:inbox -label:snoozed'); // Search for un-snoozed emails in the inbox
  for (var i = 0; i < threads.length; i++) {
    var thread = threads[i];
    var messages = thread.getMessages();
    
    // Check if the thread has the 'snoozed' label
    var labels = thread.getLabels();
    var hasSnoozedLabel = labels.some(function(label) {
      return label.getName() === 'snoozed';
    });
    
    for (var j = 0; j < messages.length; j++) {
      var message = messages[j];
      if (!message.isUnread() && hasSnoozedLabel) {
        message.markUnread(); // Mark email as unread if it's not already and not snoozed
      }
    }
  }
}
google-apps-script gmail gmail-imap
1个回答
0
投票

虽然我不确定是否能正确理解你的预期结果,但是下面的修改怎么样?

修改后的脚本:

function markUnsnoozedEmailsAsUnread() {
  var threads = GmailApp.search('in:snoozed');
  for (var i = 0; i < threads.length; i++) {
    var thread = threads[i];
    var messages = thread.getMessages();
    for (var j = 0; j < messages.length; j++) {
      var message = messages[j];
      if (!message.isUnread()) {
        message.markUnread();
      }
    }
  }
}

在此修改后的脚本中,通过

in:snoozed
搜索的电子邮件被设置为未读。

参考:

© www.soinside.com 2019 - 2024. All rights reserved.