2017-03-07 75 views
0

當我想給線程一個用戶定義的標籤時,沒有問題。但是當我想給系統標籤「收件箱」時,問題就開始了。Gmail的Apps腳本,將收件箱標籤分配給線程

label = GmailApp.getUserLabelByName("Inbox") 

thread.addLabel(label) 

我得到這個錯誤:

Invalid argument: label (line 2, file 'Code')

回答

1

在Gmail中,「收件箱」是一個系統的標籤,其不同於用戶創建的標籤,是不通過getLabels訪問的GmailThread類的()方法。

請注意,如果您登錄到您的Gmail帳戶,並輸入「標籤:收件箱」進入搜索欄,它會返回線程的列表與視覺標籤「收件箱」適用於他們。

出於安全原因,你只能用系統標籤,如「收件箱」或「垃圾郵件」使用,谷歌包裹周圍的方式進行交互。在下面的例子中,結果是一樣的應用「收件箱」的標籤給一個線程:

var threads = GmailApp.search("label: inbox from: [email protected]"); 

 var thread = GmailApp.getThreadById("yourId"); 

     if(!thread.isInInbox()) { 

      thread.moveToInbox(); //apply the inbox label 

        } 

也可以通過使用GmailApp類的search()方法過濾的收件箱中的消息

希望這有助於!

+1

謝謝,它肯定幫助了我! – Vincent

0

GmailLabel是「用戶創建的標籤」 by definition,所以我想你不能添加系統標籤,如「收件箱」。即使在Gmail網絡用戶界面中也無法應用收件箱標籤。

+0

你確定有關Web UI?因爲我可以點擊「移至收件箱」來移動郵件。或者是MoveToInbox()方法是給消息添加收件箱標籤的唯一方法? – Vincent

+0

移至收件箱不會應用標籤。沒有像'收件箱'這樣的標籤。 –