前提
Gmailで条件付きのラベルを設定し、そのラベルに振り分けられるメールを
GASを使ってスプレッドシートへ随時積み上げていくということをしようとしています。
(ラベルには送信元と〇〇という文字を含むという条件を設定済み)
https://tonari-it.com/gas-add-contact-mail/
上記サイトを参考に作成したところ以下エラーメッセージが発生しました。
実現したいこと
- エラーを解消して特定条件のメールを受信する度、スプレッドシートへ転記・記録していきたい
発生している問題・エラーメッセージ
TypeError: sheet.getRange(...).getarray is not a function searchContactMail @ コード.gs:19
該当のソースコード
function searchContactMail() { /* Gmailから特定条件のスレッドを検索しメールを取り出す */ const query = 'label:テスト'; const start = 0; const max = 10; const threads = GmailApp.search(query, start, max); const messagesForThreads = GmailApp.getMessagesForThreads(threads); const array = []; const spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); const sheet = spreadsheet.getSheetByName("ログ");//(シート名指定) //メッセージID列(F列の2行目~データのある最終行まで)を一次元配列として取得=Arrayオブジェクト.flat(深さ)// ** const lastRow = sheet.getLastRow();** **const ids = sheet.getRange(2, 6, lastRow).getarray().flat();** //メッセージIDを取得=Messageオブジェクト.getId()// for(const messages of messagesForThreads){ const message = messages[0]; const id = message.getId(); //配列の中にある値(ids内)に、現在のメッセージIDが含まれているかどうかを判定するif文// if(!ids.includes(id)){ const record = [ message.getDate(), message.getReplyTo(), message.getSubject(), message.getPlainBody().slice(0,200), message.getThread().getPermalink(), message.getId() ]; array.push(record); } } if(array.length > 0){ sheet.getRange(lastRow + 1, 1, array.length, array[0].length).setarray(array); } }
試したこと
取得するデータがないのが問題かと思い、一行目に項目名を追加してみましたが関係ないようでした。
(項目:date / from / subject / message / link / id)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/07/13 02:47