【问题标题】:Add tags based on the date of the last reply to a thread in GMail using a Google Apps Script使用 Google Apps 脚本根据上次回复 GMail 中的线程的日期添加标签
【发布时间】:2018-07-24 03:40:36
【问题描述】:

我为我的 GMail 帐户创建了一个 Google Apps 脚本。它会检查我的@ACTIONS 文件夹中的电子邮件,并根据它的年龄添加标签。

例如,这部分脚本在电子邮件超过一周时添加标签1 WEEK OLD

var threads = GmailApp.search('label:@actions older_than:7d newer_than:14d -(label:1 WEEK OLD) ');
var label = GmailApp.getUserLabelByName("1 WEEK OLD");

for (var t in threads) {
  threads[t].addLabel(label);
};

我还有其他的为 3 DAYS、2 WEEKS OLD 和 30 DAYS OLD 添加标签。 当电子邮件被移出@ACTIONS 文件夹时,标签将被删除:

var threads = GmailApp.search('-(label:@actions) (label:1 WEEK OLD)');
var label = GmailApp.getUserLabelByName("1 WEEK OLD");

for (var t in threads) {
  threads[t].removeLabel(label);
};

问题在于 Gmail 搜索功能:older_than 适用于线程中的初始电子邮件 - 而不是最终电子邮件。因此,即使稍后有回复,也会显示标签。例如,几个月前收到的一封电子邮件添加了 30 DAYS 标签,尽管它在上周得到回复。

有没有办法根据上次回复的日期添加这些标签 - 而不是原始电子邮件的日期。

完整的脚本在这里:https://pastebin.com/Xdv8U5eV

谢谢!

【问题讨论】:

  • 使用 Gmail 高级服务,您可以使用 Gmail.Messages.modify.batchModify 执行每封邮件的标签分配 Gmail 的行为,其中查看对话线程显示所有邮件的所有标签,不能使用 Apps 脚本更改。
  • 谢谢。我不确定我将如何使用Gmail.Messages.modify。我对显示所有消息中的所有标签的默认视图很好,但我希望线程的标签根据线程中最新电子邮件的日期显示标签。如果有办法根据线程的最新电子邮件进行标记,那将是我的解决方案。
  • 在我的代码中,t 是线程,有没有办法找出最新电子邮件的日期。然后算出几天前?然后我可以添加标签。
  • 啊,好吧,我找到了getLastMessageDate(),所以这应该会有所帮助。
  • 啊,明白了!让我做一些测试,但 getLastMessageDate() 看起来像答案!

标签: google-apps-script gmail


【解决方案1】:

我解决了这个问题。我需要的是用getLastMessageDate()做一个IF语句:

var threads = GmailApp.search('label:@actions) older_than:1d newer_than:3d -(label:1 DAY OLD) ');
var label = GmailApp.getUserLabelByName("1 DAY OLD");
var minDays = 1 // Enter # of days
var maxDays = 3 // Enter # of days
var minDate = new Date();
var maxDate = new Date();
minDate.setDate(minDate.getDate()-minDays);
maxDate.setDate(maxDate.getDate()-maxDays);

for (var t in threads) {
   if (threads[t].getLastMessageDate()>maxDate && threads[t].getLastMessageDate()<minDate )
      {
          threads[t].addLabel(label);
      };
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-26
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2018-09-17
    • 1970-01-01
    • 2019-06-05
    • 1970-01-01
    相关资源
    最近更新 更多