我正在嘗試執行一個簡單的谷歌腳本,該腳本處理每個由gmail用戶收到的郵件。
我發現確實是這樣的一個例子:
谷歌應用程序腳本和GmailApp:剛剛收到新消息
var threads = GmailApp.getInboxThreads();
for (var i=0; i < threads.length; i++) {
var messages = threads[i].getMessages();
for (var j=0; j < messages.length; j++) {
if (!messages[j].isUnread()) {
continue;
}
//process message
}
}
那就是:我遍歷收件箱中的所有郵件和搜索未讀的。只有1800條消息,這是非常緩慢的。
理想情況下,我正在尋找一個觸發器,一旦收到每個新消息就會被觸發。
如果沒有這樣的事情,我會嘗試利用這一點,我看到:
GmailApp.getMessageById(id)
這種方法的一個小問題:標籤附加到線程,而不是消息。這意味着,隨着消息進入收件箱並被添加到已處理的現有線程,標籤將重新應用到線程,並且您的方法會再次處理線程中的每條消息。 這可以通過識別哪些郵件無法避免重新處理: **快速和骯髒的:**明星消息,並只處理那些未加星號** 緩慢而徹底:**記錄消息ID的地方,並重複檢查加工前/加工期間/加工後 – sahmeepee