【GAS】Gmailのスレッドにラベルを付けたいです。

実現したいこと

GAS(Google Apps Script)を使用して、Gmailをスプレッドシートへ転記したい。

前提

重複して転記することを避けるため、転記したメールにはラベルを付け、
ラベルの付いていないメールのみをスプレッドシートへ転記したいです。

発生している問題・エラーメッセージ

エラー Exception: Invalid argument: label (匿名) @ コード.gs:45 myFunction @ コード.gs:6

該当のソースコード

function myFunction() { // 検索条件に該当するスレッド一覧を取得 var threads = GmailApp.search('subject:[エキスパ]フォーム登録通知 sOD8e5 -label:SS.処理済み'); // スレッドを一つずつ取り出す threads.forEach(function(thread) { // スレッド内のメール一覧を取得 var messages = thread.getMessages(); // メールを一つずつ取り出す messages.forEach(function(message) { // メール本文を取得 var plainBody = message.getPlainBody(); // 登録日を取り出す var date = plainBody.match(/登録日時:(.*)/); // 氏名を取り出す var name = plainBody.match(/氏名:(.*)/); // ふりがなを取り出す var furigana = plainBody.match(/氏名ふりがな:(.*)/); // メールアドレスを取り出す var email = plainBody.match(/メールアドレス:(.*)/); // 質問を取り出す var question = plainBody.match(/ご質問内容:(.*)/); // 書き込むシートを取得 var sheet = SpreadsheetApp.getActive().getSheetByName('メールで質問する'); // 最終行を取得 var lastRow = sheet.getLastRow() + 1; // セルを取得して値を転記 sheet.getRange(lastRow,1).setValue(date[1]); sheet.getRange(lastRow,2).setValue(name[1]); sheet.getRange(lastRow,3).setValue(furigana[1]); sheet.getRange(lastRow,4).setValue(email[1]); sheet.getRange(lastRow,5).setValue(question[1]); }); // スレッドに処理済みラベルを付ける var label = GmailApp.getUserLabelByName('SS.処理済み'); thread.addLabel(label); }); }

試したこと

ネット上の情報をもとにコードを作成しました。

スプレッドシートへの転記までは希望通り動作しましたが、
スレッドへのラベル付けがうまくいきません。

ご教示ください。

補足情報(FW/ツールのバージョンなど)

コメントを投稿

0 コメント