如何修改Gmail脚本,忽略以数字1开头的标签标记邮件为已读?
解决方案
你可以借助Gmail搜索语法的通配符*匹配所有以数字1开头的标签,再通过排除规则实现需求。修改后的脚本如下:
var threads = GmailApp.search('is:unread -label:Inbox -label:1*', 0, 100); GmailApp.markThreadsRead(threads);
关键说明:
is:unread:Gmail搜索未读邮件的标准语法(你原脚本里的label:unread也能生效,但is:unread更贴合官方规范)-label:1*:通配符*会匹配"1"开头的任意标签(包括仅为"1"、"123"、"1-work"这类标签),前缀-表示排除这类标签- 若要排除多个前缀的标签,比如同时排除以"2"开头的标签,直接追加
-label:2*即可
补充提示:
原脚本的第三个参数100限制了单次最多获取100条邮件线程,若未读邮件数量超过100,建议用循环批量处理避免遗漏:
function markUnreadExceptSpecifiedLabels() { var pageSize = 100; var pageToken = null; do { var threads = GmailApp.search('is:unread -label:Inbox -label:1*', pageToken, pageSize); GmailApp.markThreadsRead(threads); pageToken = threads.length < pageSize ? null : GmailApp.getNextPageToken(); } while (pageToken); }
内容的提问来源于stack exchange,提问作者Alan Englefield
相关产品推荐
相关产品推荐

