为什么我在 Google 脚本中使用 removeLabel 函数时得到无效参数
Why do I get an Invalid Argument when using the removeLabel function in Google Script
我想从电子邮件集合中删除用户创建的名为 "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()
等任何其他函数,代码将完美运行。
我认为您的代码可以工作,但我认为您需要做的就是:
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 搜索中的样子 window:
他们将斜线更改为破折号并使用小写字母,这并不是标签的真实样子。
正如我在上面的评论中所说:
我最近才这样做,我发现 gmail 搜索中的标签描述 window 与我实际创建标签的方式不一致。它显示了一个像这样的标签 q0-subject-name
我将它创建为 Q0/Subject/Name
当我使用 q0-subject-name
时我找不到标签,当我使用 Q0/Subject/Name
时我找到了它。
我想从电子邮件集合中删除用户创建的名为 "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()
等任何其他函数,代码将完美运行。
我认为您的代码可以工作,但我认为您需要做的就是:
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 搜索中的样子 window:
他们将斜线更改为破折号并使用小写字母,这并不是标签的真实样子。
正如我在上面的评论中所说:
我最近才这样做,我发现 gmail 搜索中的标签描述 window 与我实际创建标签的方式不一致。它显示了一个像这样的标签 q0-subject-name
我将它创建为 Q0/Subject/Name
当我使用 q0-subject-name
时我找不到标签,当我使用 Q0/Subject/Name
时我找到了它。