Gmail外出邮件脚本

时间:2017-09-26 12:35:16

标签: javascript google-apps-script

我正在使用以下小脚本为周五和周六抵达的所有电子邮件创建外出消息。这些脚本还将它们标记为已读,因为它们未被读取时会陷入循环并继续发送回办公室外消息。

问题在于,当我周日回到办公桌时,我无法分辨哪些新电子邮件到达,因为它们已被标记为“已读”。我在周末阅读了很多电子邮件,所以我不能只读回上周末的每封电子邮件,这需要很长时间。

我需要的是一种让这些未读的方法,而不是让它们陷入循环。或者,我想在此脚本触及的每封电子邮件中添加“不在办公室”的标签,因此我可以在周日查看它们(假设我在此之前回复电子邮件时将删除标签)。

function autoReply() {
var interval = 5;    //  if the script runs every 5 minutes; change otherwise
  var date = new Date();
  var day = date.getDay();
  var hour = date.getHours();
  if ([5,6].indexOf(day) > -1 || (day == 0 && hour < 8) || (day == 4 && hour >= 19)) {
    var timeFrom = Math.floor(date.valueOf()/1000) - 60 * interval;
    var threads = GmailApp.search('is:inbox after:' + timeFrom);
    for (var i = 0; i < threads.length; i++) {
      if (threads[i].isUnread()){
      threads[i].reply("Hello! Our offices are closed for the weekend. I will be monitoring my emails sporadically and will do my best to answer any urgent inquiries. If this is not urgent, I will reply to your email on Sunday morning. Thank you for your patience. Now go have a great weekend!");
      threads[i].markRead();
      threads[i].markImportant();

      }
    }
  }}

1 个答案:

答案 0 :(得分:0)

这会使电子邮件处于未读状态,但会通过使用“外出”标签过滤掉未读电子邮件来保留重复的回复。此代码尚未经过测试。

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">