问题来了: 我有三个不同的类别,我想将它们分组在一个具有三个子标签的独特标签中。然后,我想选择这些子标签并运行我的脚本。
现在,在 Gmail 中嵌套标签非常容易,但主要问题是当您运行基于嵌套标签的脚本时。这是我的功能:
function getGmailEmails(){
var label = GmailApp.getUserLabelByName("UtentiSW");
var threads = label.getThreads();
for(var i = threads.length - 1; i >=0; i--){
var messages = threads[i].getMessages();
for (var j = 0; j <messages.length; j++){
var message = messages[j];
if (message.isUnread()){
extractDetails(message);
GmailApp.markMessageRead(message);
}
}
//threads[i].removeLabel(label); //delete the label after getting the message
}
}
如果我尝试创建一个嵌套标签并使用所示的标签名称在函数中选择它,则不起作用。仅当我按照第一张图片将标签放入 gmail 的根文件夹中时,它才有效。
有人可以帮忙吗?谢谢
在子标签之前创建标签
function createLabelsAndSubLabel() {
const labels = ["Q1","Q1/1","Q1/2","Q1/3"]
labels.forEach(l => GmailApp.createLabel(l))
}
Gmail 中的样子:
function listAllLabels() {
let labels = JSON.parse(Gmail.Users.Labels.list("me")).labels;
let hdr = ["Name","Vis","Type","id"]
let o = labels.map(obj => [obj.name,obj.messageListVisibility,obj.type,obj.id]);
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName('Sheet0');
sh.clearContents();
o.unshift(hdr);
sh.getRange(1,1,o.length,o[0].length).setValues(o).sort({column:1,ascending:true});
}
关于您的上一条评论,我添加了此代码来为现有标签创建子标签
function createLabelsAndSubLabel() {
const labels = ["Q1/3/1","Q1/3/2","Q1/3/3"]
labels.forEach(l => GmailApp.createLabel(l))
}
我遇到了和你一样的问题,但通过一点点修补我设法解决了它。
见代码:
function GetEmailByLabel() {
var threads = GmailApp.getUserLabelByName("name of root label"/"name of sublabel").getThreads();
// Do as you wish with the emails
希望这有帮助