前提・実現したいこと
GAS(Google Apps Script)を使用して、Gmailをスプレッドシートへ転記したい。
重複して転記することを避けるため、転記したメールにはラベルを付け、
ラベルの付いていないメールのみをスプレッドシートへ転記したい。
発生している問題・エラーメッセージ
転記まではうまくいくのですが、転記済みのメールへのラベル付けがうまくいきません。
エラー
TypeError: messagesForThreads.addLabel is not a function
myFunction @ コード.gs:24
該当のソースコード
function myFunction() { const query = 'in:inbox -label:転記済み'; const start = 0; const max = 10; const threads = GmailApp.search(query,start,max); const messagesForThreads = GmailApp.getMessagesForThreads(threads); for(const messages of messagesForThreads){ const message = messages[0]; const from = message.getFrom(); const date = message.getDate(); const plainbody = message.getPlainBody(); const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('メール転記'); const lastrow = sheet.getLastRow() + 1; sheet.getRange(lastrow,1).setValue(from); sheet.getRange(lastrow,2).setValue(date); sheet.getRange(lastrow,3).setValue(plainbody); const label = GmailApp.getUserLabelByName('転記済み'); messagesForThreads.addLabel(label); } }
試したこと
初学者のため、ネット上の情報を繋ぎ合わせてコードを作成しました。
スレッド内のすべてのメールを転記すると煩雑になるため、
スレッド内の最初のメールのみを転記したく、上記のコードを作成しました。
スプレッドシートへの転記までは希望通り動作しましたが、
スレッドへのラベル付けがうまくいきません。
ご教示ください。
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー