如何使用Google Apps脚本将电子邮件返回收件箱顶部

时间:2013-10-16 00:49:20

标签: api email google-apps-script gmail

我正在尝试创建自己的Boomerang版本,这是一个脚本,可以在以后按照用户的指定将电子邮件返回到您的收件箱。

我正在使用Google Apps脚本,除了我无法将电子邮件返回到收件箱顶部之外,我还能正常工作。我已尝试使用相关脚本转发电子邮件,但无济于事。

有什么想法吗?


以下是我尝试过的一些代码示例(其中没有一个产生我正在寻找的结果):

测试1:

  messages = GmailApp.getMessagesForThreads(threads);
  for (var i = 0 ; i < threads.length; i++) {
      messages[i][0].reply("<b>This message has been moved to the top of your inbox per your request. Please take action soon.</b>", {
        replyTo: "desiredEmail@gmail.com"
      });
  }

测试2:

  messages = GmailApp.getMessagesForThreads(threads);
  for (var i = 0 ; i < threads.length; i++) {
      forward("desiredEmail@gmail.com", {
         htmlBody: "<b>This message has been moved to the top of your inbox per your request. Please take action soon.</b>",
         name: "ServAce85",
         replyTo: "desiredEmail@gmail.com",
         from: "desiredEmail@gmail.com",
         subject: "Re: " + messages[i].getSubject()

      });
   }

测试3:

  messages = GmailApp.getMessagesForThreads(threads);
  for (var i = 0 ; i < threads.length; i++) {          
       messages[i][0].forward("desiredEmail@gmail.com", {
         subject: messages[i][0].getSubject()
       });
  }

测试4:

function moveEmail(threadsToMove) {
  var  threads = threadsToMove;
  var  messages = GmailApp.getMessagesForThreads(threads);
  for (var i = 0 ; i < threads.length; i++) {
    messages[i][0].forward(Session.getActiveUser().getEmail(), {
        subject: "Re: " + messages[i][0].getSubject(),
          htmlBody: "<b>This message has been moved to the top of your inbox per your request. Please take action soon.</b></n>" + Session.getActiveUser().getEmail() + "</n>" + messages[i][0].getBody()
      });
    GmailApp.sendEmail(Session.getActiveUser().getEmail(), "Re: " + messages[i][0].getSubject(), messages[i][0].getPermalink());
  }
}

2 个答案:

答案 0 :(得分:1)

这似乎对我有用:

function moveEmail() {
  var  threads = GmailApp.getInboxThreads(0, 2); // Change to what you want the threads to be
  var  messages = GmailApp.getMessagesForThreads(threads);
  for (var i = 0 ; i < threads.length; i++) {
      messages[i][0].forward("CHANGEEMAIL@GMAIL.COM", {
          htmlBody: "<b>This message has been moved to the top of your inbox per your request. Please take action soon.</b></n>" + messages[i][0].getBody()
      });
   }
}

答案 1 :(得分:0)

我来这里是为了寻找类似于“暂停”收件箱的解决方案。

做到这一点:

1)在Gmail中进行过滤,以便每个新邮件都绕过收件箱,并被标记为您创建的自定义标签。

2)为以下Google脚本功能设置时间触发:

function moveTheMails(){
  var label0 = GmailApp.getUserLabelByName("Custom Label/Sublabel if wanted");
  var threads = label0.getThreads();
  for (var i = 0; i < threads.length; i++) {
    threads[i].moveToInbox();
    threads[i].removeLabel(label0);
  }
}

Voila,取决于您的时间触发,新邮件会在自定义时间传递到收件箱。 作为gmail-filter,我使用了: 从:(-(a {b @ com或c@d.com})到:(me1@my.com或me2@my.com) 过滤器中不包括(-)中的地址,因此来自该人的邮件将直接发送到收件箱中。