GmailApp createLabel与getUserLabelByName

时间:2016-03-01 23:41:20

标签: google-apps-script

我不想假设标签 foo 存在。

我必须做......

var foo = GmailApp.getUserLabelByName("foo");
if (foo == null) {
  var foo = GmailApp.createLabel("foo");  
}

或者是否足以执行以下操作(这似乎有效!)...

var foo = GmailApp.createLabel("foo");

问题

  1. #1或#2中的哪一个是正确的?
  2. 如果#2有效,为什么要做#1?
  3. 还有第三种更好的方式来写同样的东西吗?

1 个答案:

答案 0 :(得分:1)

只需GmailApp.createLabel("Label_Name")即可创建新标签。即使存在该名称中的标签。

所以,

  1. 从某种意义上说,两者都是正确的,两者都有效。
  2. #1是多余的。那么为什么还要费心去做那些不必要的检查。
  3. 它非常简单而有效。你为什么要寻找更好的 选择?它已记录在案 here
  4. 要删除标签,您必须使用第一种方法:

    // have to get the label by name first
     var label = GmailApp.getUserLabelByName("FOO");
     GmailApp.deleteLabel(label);