Gmail脚本:过滤器,星标和gmailApp.search,但有些电子邮件却落空了

时间:2016-04-05 22:37:08

标签: google-apps-script gmail

事实:

我有一个脚本可以在收件箱中搜索未读电子邮件,并且任何未加星标的内容都会从收件箱和应用标签中删除。 有一些过滤器可以将某些电子邮件地址标记为已加星标。

目标:

将所有内容从收件箱移动到不相关的文件夹。 除了已加星标的项目。 还有一种方法,允许手动拖回到收件箱,并确保它们留在那里。

问题:

大多数电子邮件都会根据需要进行处理。 只有部分已加星标的电子邮件仍然会将脚本应用到,并因此从收件箱中移出并标记为“newLabel”

感谢您的帮助。如果有更好的方法来完成同样的事情,我会将其切换。

/**
* Get the label, or create it if it doesn't exist
 */
function _getAssistLabel() {
  /**
   * If you'd like your label to say something different, modify it here
   */
  var assist_label_text = "newLabel";
 /** 
  *Get the label
  */
  var label = GmailApp.getUserLabelByName(assist_label_text);
 /**
  *if Label isn't found, create it
  */
  if (label == null) {
    var label = GmailApp.createLabel(assist_label_text);
  }

  return label;
}


/**
 * Search for starred, unread messages in the inbox 
 * apply a label 
 * then archive message (remove from inbox)
 */
function addAssistLabels() {
  var label = _getAssistLabel();

 /**
  * If a message is unread, and is in the inbox and is NOT starred...
  */
  var threads = GmailApp.search('is:unread in:inbox -label:Starred  -label:Sales');

 /**  ..then label the message and remove it from the inbox.
  * This will make the message show up in the "folder"
  */
  for (var i = 0; i < threads.length; i++) {
    label.addToThread(threads[i]);
      threads[i].moveToArchive();
  }
}






/**  
  * Force threads with starred emails and any with label "forBoss" to return to inbox
  */

function forceInbox() {
  var label = GmailApp.getUserLabelByName("newLabel"); 
  var threads = GmailApp.search('label: newLabel label:forBoss');

  for (var i = 0; i < threads.length; i++) {
   label.removeFromThread(threads[i]);
      threads[i].moveToInbox();
  }
}

我将此链接用于此部分:Gmail Script: search then move to inbox, remove label

1 个答案:

答案 0 :(得分:1)

你的第一个帖子没有正确收到邮件。

var threads = GmailApp.search('is:unread in:inbox -label:Starred -label:Sales');

你表示

  

我有一个独立的脚本,可以在收件箱中搜索未读电子邮件,以及任何未加星标的邮件   已从收件箱中移除并已应用标签。

GmailApp.search()应该只使用is:unread in:inbox来满足您的需求。 此外,使用搜索查询参数label:之前不应该有破折号。

查看文档以获取已接受的搜索查询参数列表here