gpt4 book ai didi

google-apps-script - 使用 Google Apps 脚本自动移动/应用标签到 Gmail

转载 作者:行者123 更新时间:2023-12-04 12:17:31 25 4
gpt4 key购买 nike

我正在尝试为我的 G Suite 邮箱制作一个自动归档脚本。

该脚本包含一个搜索查询,然后应该获取所有找到的结果,从收件箱中删除并向其添加自定义标签(存档)。

我正在努力解决 addLabel部分。它抛出一个错误 InternalError: Cannot find method addLabel(string).但是当我检查文档时,它似乎是正确对象的正确方法。

任何帮助,将不胜感激。

自动 gmail 归档

var ARCHIVE_LABEL = "archived";    
var AUTO_ARCHIVE_AFTER = "30";

function Intialize() {
return;
}

function Install() {

ScriptApp.newTrigger("autoArchive")
.timeBased()
.at(new Date((new Date()).getTime() + 1000*60*2))
.create();

ScriptApp.newTrigger("autoArchive")
.timeBased().everyDays(1).create();

}

function Uninstall() {

var triggers = ScriptApp.getScriptTriggers();
for (var i=0; i<triggers.length; i++) {
ScriptApp.deleteTrigger(triggers[i]);
}

}

function autoArchive() {

var age = new Date();
age.setDate(age.getDate() - AUTO_ARCHIVE_AFTER);

var auto = Utilities.formatDate(age, Session.getScriptTimeZone(), "yyyy-MM-dd");
var search = "in:inbox is:read before:" + auto;

try {

var threads = GmailApp.search(search, 0, 100);
console.log("Found total:", threads.length); //This gives me 100 for the debug/test run which matches the result I should be getting


if (threads.length == 100) {
ScriptApp.newTrigger("autoArchive")
.timeBased()
.at(new Date((new Date()).getTime() + 1000*60*10))
.create();
}

for (var i=0; i<threads.length; i++) {
if(threads[i].isInInbox()){
console.log("So far so good. Let's add label")
threads[i].addLabel('archived'); // This throws back the error **InternalError: Cannot find method addLabel(string).**
}
}

} catch (e) {
console.log('Error');
console.log(e);
}

}

最佳答案

这个 retrofit 怎么样?

retrofit 要点:

  • label的类型的 addLabel(label)GmailLabel .
  • 在你的情况下,你可以使用getUserLabelByName()的方法.

  • 修改后的脚本:

    请修改如下。

    从:
    for (var i=0; i<threads.length; i++) {
    if(threads[i].isInInbox()){
    console.log("So far so good. Let's add label")
    threads[i].addLabel('archived'); // This throws back the error **InternalError: Cannot find method addLabel(string).**
    }
    }

    到:
    var label = GmailApp.getUserLabelByName("archived"); // Added
    for (var i=0; i<threads.length; i++) {
    if(threads[i].isInInbox()){
    console.log("So far so good. Let's add label")
    threads[i].addLabel(label); // Modified
    }
    }

    笔记:
  • 如果您想提供新标签,请在运行脚本之前创建标签。当然,您可以使用脚本创建新标签。届时请使用 createLabel() 的方法如 @Cooper的评论。

  • 引用:
  • getUserLabelByName()
  • addLabel(label)

  • 如果我误解了你的问题,请告诉我。我想修改它。

    关于google-apps-script - 使用 Google Apps 脚本自动移动/应用标签到 Gmail,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54140502/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com