2015-06-23 82 views
0

谷歌Apps腳本Gmail的腳本 - label.getUnreadCount()問題

https://developers.google.com/apps-script/reference/gmail/gmail-label

getUnreadCount() 

// log the number of unread threads labeled with MyLabel 
    var label = GmailApp.getUserLabelByName("MyLabel"); 
    Logger.log(label.getUnreadCount()); 

Gets the number of unread threads tagged with this label. 

,當我試圖提供的示例代碼,它返回不同的讀值。

從電子郵件,它顯示未讀的17,但日誌文件顯示12

任何想法?

+0

玩過這個方法,並測試了幾個標籤和不同的場景。該方法返回正確的結果。確保您正在運行腳本並使用您檢查標籤的相同電子郵件進行身份驗證。 – KRR

回答

0

我對這個腳本進行了徹底的測試,發現雖然它從收件箱中獲得標有標籤的電子郵件數,但是它不會計算標記在其他文件夾但標籤相同的電子郵件。因此,如果您有17封帶有標籤的未讀電子郵件(假設它像您的問題)「MyLabel」,那麼我的猜測中有12封是在收件箱中,但其中5封郵件已跳過/已從收件箱中移出,因此未計算在內由功能。

但是,變通的一種是使用:

var threads = label.getThreads();

,並將所有的這些添加到收件箱,同時保持這些文件打上標籤。現在,如果您計算,您的函數應該返回17.但理想情況下,您不應該這樣做,所以我建議您也將其歸檔爲缺陷here,並在此期間使用變通辦法。