Gmail 的 Apps 脚本,将收件箱标签分配给线程
Gmail's Apps script, assigning inbox label to thread
当我想给线程一个用户定义的标签时,没有问题。但是当我只想给出系统标签 "Inbox".
时,问题就开始了
label = GmailApp.getUserLabelByName("Inbox")
thread.addLabel(label)
我收到这个错误:
Invalid argument: label (line 2, file 'Code')
GmailLabel
是 'a user-created label' by definition,所以我猜你不能添加像 'inbox' 这样的系统标签。即使在 Gmail 网络中,我们也无法应用收件箱标签 UI。
在 Gmail 中,"inbox" 是一个系统标签,与用户创建的标签不同,它不能通过 GmailThread class 的 getLabels() 方法访问。
请注意,如果您登录 Gmail 帐户并在搜索栏中输入 "label: inbox",它将 return 应用视觉标签 "inbox" 的主题列表.
出于安全原因,您只能使用 Google 围绕它们的方法与 "inbox" 或 "spam" 等系统标签进行交互。在以下示例中,结果与将 "inbox" 标签应用于线程相同:
var thread = GmailApp.getThreadById("yourId");
if(!thread.isInInbox()) {
thread.moveToInbox(); //apply the inbox label
}
您还可以使用 GmailApp 的 search() 方法过滤收件箱邮件 class:
var threads = GmailApp.search("label: inbox from: contact@example.com");
希望对您有所帮助!
当我想给线程一个用户定义的标签时,没有问题。但是当我只想给出系统标签 "Inbox".
时,问题就开始了label = GmailApp.getUserLabelByName("Inbox")
thread.addLabel(label)
我收到这个错误:
Invalid argument: label (line 2, file 'Code')
GmailLabel
是 'a user-created label' by definition,所以我猜你不能添加像 'inbox' 这样的系统标签。即使在 Gmail 网络中,我们也无法应用收件箱标签 UI。
在 Gmail 中,"inbox" 是一个系统标签,与用户创建的标签不同,它不能通过 GmailThread class 的 getLabels() 方法访问。
请注意,如果您登录 Gmail 帐户并在搜索栏中输入 "label: inbox",它将 return 应用视觉标签 "inbox" 的主题列表.
出于安全原因,您只能使用 Google 围绕它们的方法与 "inbox" 或 "spam" 等系统标签进行交互。在以下示例中,结果与将 "inbox" 标签应用于线程相同:
var thread = GmailApp.getThreadById("yourId");
if(!thread.isInInbox()) {
thread.moveToInbox(); //apply the inbox label
}
您还可以使用 GmailApp 的 search() 方法过滤收件箱邮件 class:
var threads = GmailApp.search("label: inbox from: contact@example.com");
希望对您有所帮助!