【问题标题】:Why do I get an Invalid Argument when using the removeLabel function in Google Script为什么在 Google Script 中使用 removeLabel 函数时出现无效参数
【发布时间】:2020-02-01 17:19:50
【问题描述】:

我想从电子邮件集合中删除我的用户创建的名为“Add-to-Spendee-2”的标签。我已经非常关注 Google's removeLabel() Documentation 了,但我不断收到 "Invalid argument: label" 错误。

代码如下:

function removeLabel()

{
  var myLabel = GmailApp.getUserLabelByName('test-add-to-spendee-2');
  var threads = GmailApp.search("label:test-add-to-spendee-2 AND from:swiggy AND subject:(Your receipt for Swiggy order)");

  for (var x in threads) 
  {
  var thread = threads[x]
  thread.removeLabel(myLabel)
  }
  
}

注意:如果我将removeLabel(myLabel) 替换为markUnread() 之类的任何其他函数,则代码可以完美运行。

【问题讨论】:

  • 我最近才这样做,我发现 gmail 搜索窗口中标签的描述与我实际创建标签的方式不一致。它显示一个像q0-subject-name 这样的标签,当我使用q0-subject-name 时,我将它创建为Q0/Subject/Name,我找不到标签,当我使用Q0/Subject/Name 时,我找到了它。我希望这对你有帮助。

标签: javascript google-apps-script gmail


【解决方案1】:

我认为你的代码可以工作,但我认为你需要做的就是:

var lbl=GmailApp.getUserLabelByName('Q0/Subject/Name');
var threads=GmailApp.search('label:Q0/Subject/Name');//exactly as you created it
lbl.removeFromThreads(threads);

尝试使用调试器并确保线程正在获取一组 GmailThread 对象。

这是 Gmail 搜索窗口中标签的外观:

他们将斜杠改为破折号并使用小写字母,这并不是标签的样子。

正如我在上面的评论中所说的:

我最近才这样做,我发现 gmail 搜索窗口中标签的描述与我实际创建标签的方式不一致。它显示了一个像 q0-subject-name 这样的标签,当我使用 q0-subject-name 时,我将它创建为 Q0/Subject/Name,我找不到标签,而当我使用 Q0/Subject/Name 时,我找到了它。

【讨论】:

  • 那么,明确地说,脚本是否需要使用带有斜杠或破折号的公式?根据搜索,我在“收益”中有一个标签“通讯”,并尝试了“收益-通讯”。它可能有效,但我不确定,因为我收到了一些“无效参数”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-18
  • 2018-07-05
  • 1970-01-01
  • 2021-01-05
  • 1970-01-01
相关资源
最近更新 更多