2017-06-14 77 views
0

對不起,我不是一個程序員,Gmail應用程序腳本cleaninbox改裝

我使用這個Gmail應用程序腳本(CLEANINBOX),它在瑞德爾的偉大工程,以保持我的收件箱清潔。 因爲我需要在同一時間使用INBOX應用程序(移動)和GMAIL應用程序(桌面),所以我需要實現此腳本以避免INBOX中的PINNED消息獲得成功。

我在IF序列中插入一個條件,它不起作用 掙扎了一下後,我意識到(糾正我,如果我錯了),下面的代碼不工作becouse!thread.getLabels()==' PINNED')不是BOOLEAN

任何人都可以指向我的正確的代碼?

function cleanInbox() { 
    var threads = GmailApp.getInboxThreads(); 
    for (var i = 0; i < threads.length; i++) { 
     var thread=threads[i]; 
     if (!thread.hasStarredMessages() && !thread.isUnread() && !thread.getLabels()=='PINNED') { 
      GmailApp.moveThreadToArchive(threads[i]); 
     } 
    } 
} 

回答

0

聲明!thread.getLabels()=='PINNED'是布爾值(因爲操作數==輸出true或false)。我覺得你的問題是,thread.getLabels()不返回一個字符串,因此它永遠不會等於'PINNED'

編輯:

getLabels()方法的返回值是GMAILLABEL []。您可以通過標籤進行迭代,並通過將此代碼檢查條件:

for (var i = 0; i < threads.length; i++) { 
var thread=threads[i]; 
if (!thread.hasStarredMessages() && !thread.isUnread()) { 
    var labels = thread.getLabels(); 
    var isPinned = false;   
    for (var j = 0; i < labels.length; i++) { 
     if (labels[j].getName() == "PINNED"){ 
      isPinned = true; 
      break; 
     }  
    if (!isPinned){ 
     GmailApp.moveThreadToArchive(threads[i]); 
    } 
} 
+0

Beeing「固定」標籤收件箱的正確名稱分配給線程,任何想法可能是正確的聲明? –

+0

您可以閱讀文檔並查看返回的GmailLabels數組。 https://developers.google.com/apps-script/reference/gmail/gmail-thread – AndreyF

+0

太糟糕了,它不工作。 我想我會嘗試別的方向。也許主播每個固定線程更簡單的代碼 –

1

確定它是多easyer然後期待......

我只是需要縮小線程一起工作的數量,我之所以這樣做是不包括那些有 「固定」 標籤

VAR線程= GmailApp.search( '在:收件箱-label:固定')

解決

感謝輸入