我的目標是將具有特定標簽的所有訊息放入一個陣列中。
目前我正在使用Gmailapp.search(),它成功地為我提供了一組帶有我指定標簽的 Gmail 執行緒。我卡住的地方是 - 將執行緒的所有訊息提取到一個陣列中。正如您在下面的代碼中看到的,我正在嘗試使用getMessagesForThreads()函式,但是使用下面的代碼,執行緒數和總訊息數是相同的,這是不對的。
function getRelevantMessages()
{
var queried_Email_Threads = GmailApp.search ("label:expense tracking/Credit Card");
console.log('Number of threads queried:' queried_Email_Threads.length)
var messages = GmailApp.getMessagesForThreads(queried_Email_Threads)
console.log('Total number of messages: ' messages.length)
}
uj5u.com熱心網友回復:
看到方法的官方檔案getMessagesForThreads,示例腳本如下。
// Log the subject lines of all messages in the first two threads of your inbox
var thread = GmailApp.getInboxThreads(0, 2);
var messages = GmailApp.getMessagesForThreads(thread);
for (var i = 0 ; i < messages.length; i ) {
for (var j = 0; j < messages[i].length; j ) {
Logger.log("subject: " messages[i][j].getSubject());
}
}
當這個示例腳本反映到您的腳本時,它變成如下。
修改后的腳本:
function getRelevantMessages() {
var queried_Email_Threads = GmailApp.search("label:expense tracking/Credit Card");
console.log('Number of threads queried:' queried_Email_Threads.length)
var messages = GmailApp.getMessagesForThreads(queried_Email_Threads)
console.log('Total number of messages: ' messages.length)
// I added below script.
var res = [];
for (var i = 0; i < messages.length; i ) {
for (var j = 0; j < messages[i].length; j ) {
res.push(messages[i][j]);
}
}
console.log(res.length)
}
從官方檔案來看,
GmailMessage[][](fromgetMessagesForThreads) - 訊息陣列的陣列,其中外部陣列中的每個專案對應一個執行緒,內部陣列包含該執行緒中的訊息
參考:
- getMessagesForThreads(執行緒)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/407119.html
標籤:
