我有一个脚本可以在收件箱中搜索未读电子邮件,并且任何未加星标的内容都会从收件箱和应用标签中删除。 有一些过滤器可以将某些电子邮件地址标记为已加星标。
将所有内容从收件箱移动到不相关的文件夹。 除了已加星标的项目。 还有一种方法,允许手动拖回到收件箱,并确保它们留在那里。
大多数电子邮件都会根据需要进行处理。 只有部分已加星标的电子邮件仍然会将脚本应用到,并因此从收件箱中移出并标记为“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
答案 0 :(得分:1)
你的第一个帖子没有正确收到邮件。
var threads = GmailApp.search('is:unread in:inbox -label:Starred -label:Sales');
你表示
我有一个独立的脚本,可以在收件箱中搜索未读电子邮件,以及任何未加星标的邮件 已从收件箱中移除并已应用标签。
GmailApp.search()
应该只使用is:unread
in:inbox
来满足您的需求。
此外,使用搜索查询参数label:
之前不应该有破折号。
查看文档以获取已接受的搜索查询参数列表here