2013-09-17 3 views
2

Я хочу удалить ярлык «Followup» из каждого сообщения, которое будет помещено во входящие. Я пробовал несколько вещей, но все же безуспешно. Я надеюсь, что кто-то может мне помочь или указать мне в правильном направлении. Функция заинтересованная:Как удалить метку GMail - скрипт Google Apps

function moveToInbox(page) { 
    GmailApp.moveThreadsToInbox(page); 
// GmailApp.markThreadsUnread(page); 
// GmailApp.starMessages(page) 
    var label = GmailApp.getUserLabelByName("FollowUp"); 
    var firstThread = GmailApp.getInboxThreads(0,1)[0]; 
    var coupleOfMessages = firstThread.getMessages().slice(0, 10); 
    GmailApp.starMessages(coupleOfMessages); 
    label.removeFromThread(firstThread); 
} 

Весь сценарий:

function getLabelName(i, labelSuffixString) { 
    return "FollowUp/" + i + labelSuffixString; 
} 

function setup() { 
    for (var i = 1; i <= 7; ++i) { 
    GmailApp.createLabel(getLabelName(i, "days")); 
    GmailApp.createLabel(getLabelName(i, "weeks")); 
    } 
    GmailApp.createLabel("FollowUp"); 
} 

function moveToInbox(page) { 
    GmailApp.moveThreadsToInbox(page); 
// GmailApp.markThreadsUnread(page); 
// GmailApp.starMessages(page) 
    var label = GmailApp.getUserLabelByName("FollowUp"); 
    var firstThread = GmailApp.getInboxThreads(0,1)[0]; 
    var coupleOfMessages = firstThread.getMessages().slice(0, 10); 
    GmailApp.starMessages(coupleOfMessages); 
    label.removeFromThread(firstThread); 
} 

function cleanOldFollowUpLabels() { 
    var searchString = "-label:inbox label:FollowUp"; 
    for (var i = 1; i <= 7; ++i) { 
    searchString += " -label:" + getLabelName(i, "days"); 
    searchString += " -label:" + getLabelName(i, "weeks"); 
    } 
    searchString = searchString.replace(RegExp("/", "g"), "-"); 
    Logger.log("cleanOldFollowUpLabels() Search String:"); 
    Logger.log(searchString); 
    var followUpLabel = GmailApp.getUserLabelByName("FollowUp"); 
    var page = null; 
    // Get threads in "pages" of 100 at a time 
    while(!page || page.length == 100) { 
    page = GmailApp.search(searchString, 0, 100); 
    Logger.log("found: " + page.length); 
    if (page.length > 0) 
     followUpLabel.removeFromThreads(page); 
    } 
} 

function update(labelSuffixString) { 
    var oldLabel, newLabel, page; 
    var followUpLabel = GmailApp.getUserLabelByName("FollowUp"); 
    for (var i = 1; i <= 7; ++i) { 
    newLabel = oldLabel; 
    oldLabel = GmailApp.getUserLabelByName(getLabelName(i, labelSuffixString)); 
    page = null; 
    // Get threads in "pages" of 100 at a time 
    while(!page || page.length == 100) { 
     page = oldLabel.getThreads(0, 100); 
     if (page.length > 0) { 
     followUpLabel.addToThreads(page); 
     if (newLabel) { 
      // Move the threads into "today’s" label 
      newLabel.addToThreads(page); 
     } else { 
      moveToInbox(page); 
     }  
     // Move the threads out of "yesterday’s" label 
     oldLabel.removeFromThreads(page); 
     // Wait for a minute to prevent timeout errors 
     Utilities.sleep(1000); 
     } 
    } 
    } 
} 

function dailyUpdate() { 
    update("days"); 
} 
function weeklyUpdate() { 
    update("weeks"); 
} 
+0

Какое поведение вы видите? Что происходит, когда вы запускаете код? Какую функцию вы выполняете? Кроме того, вы можете использовать сценарий выполнения, чтобы увидеть, что происходит и отлаживать. – Srik

+0

Это сообщение об ошибке, которое я получаю: Функция: dailyUpdate \t Сообщение об ошибке: ReferenceError: «FollowUp» не определен. (строка 36, файл «Код») → Я думаю, что я изменил followUp.removeFromThread (firstThread) на label.removeFromThread (firstThread) –

ответ

4

Если вы хотите удалить «прослеживание» из всех потоков, вы можете использовать label.deleteLabel(). Но так как вы просто заинтересованы в том, чтобы снять этот ярлык с тем потоков, которые вы восстанавливаете в папку «Входящие», вам необходимо их пропустить.

+0

даст эту попытку! Благодарю. вы сами пробовали сценарий? это очень полезно для сообщений «Отложить» для последующих действий. –

+0

Вы имели в виду, что разместили сообщение об ошибке? – Mogsdad

+0

Я добавил строку перед вашей предлагаемой строкой с помощью «threadArray [i] .starMessages (label);» - Я получаю сообщение об ошибке для этой строки, говорящее: «TypeError: не удается найти функцию starMessages в объекте GmailThread. (Строка 42, файл« Код »)» - как я могу добавить звезду для каждого сообщения, перемещаемого во входящие? –

Смежные вопросы