前提・実現したいこと
GAS(Google Apps Script)を使用してGmailの本文を取得した後、正規表現を削除してスプレッドシートへ転記したい。
<前提>
・重複して転記することを防ぐため、「転記済み」ラベルの付いていないメールのみを抽出する。
・スレッド内のすべてのメールを転記すると煩雑になるため、最初のメールのみ転記する。
・メールは本文に以下のような内容が記載されているものとする。
(メール本文)
お名前:山田太郎
住所:東京都千代田区
発生している問題・エラーメッセージ
エラー
TypeError: Cannot read property '0' of undefined
myFunction @ コード.gs:19
#該当のソースコード
GAS
1function myFunction() { 2 3 const query = 'in:inbox -label:転記済み'; 4 const start = 0; 5 const max = 10; 6 7 const threads = GmailApp.search(query,start,max); 8 const messagesForThreads = GmailApp.getMessagesForThreads(threads); 9 10 const label = GmailApp.getUserLabelByName('転記済み') || GmailApp.createLabel('転記済み'); 11 12 for(const messages of messagesForThreads){ 13 const message = messages[0]; 14 15 //var regName = new RegExp(/お名前: (.*)/); 16 //var regAdress = new RegExp(/住所: (.*)/); 17 //以下に修正 18 var regName = new RegExp(/お名前:(.*)/); 19 var regAdress = new RegExp(/住所:(.*)/); 20 21 const plainbody = message.getPlainBody(); 22 23 //const Name = plainbody.match(regName).replace[0]('お名前:',''); 24 //以下に修正 25 26 const Name = plainbody.match(regName)[0].replace('お名前:',''); 27 28 //const Adress = plainbody.match(regTel)[0].replace('住所:',''); 29 //以下に修正 30 31 const Adress = plainbody.match(regAdress)[0].replace('住所:',''); 32 const from = message.getFrom(); 33 const date = message.getDate(); 34 35 const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('メール転記'); 36 const lastrow = sheet.getLastRow() + 1; 37 38 sheet.getRange(lastrow,1).setValue(from); 39 sheet.getRange(lastrow,2).setValue(date); 40 sheet.getRange(lastrow,3).setValue(Name); 41 sheet.getRange(lastrow,4).setValue(Adress); 42 43 message.getThread().addLabel(label); 44 45 } 46} 47
#試したこと
初学者のため、ネット上の情報を参考にコードを作成しています。
エラーメッセージから、正規表現に関するエラーと思いますが、
正規表現部分(15〜16行目)を修正しても同様のエラーが発生してしまいます。
ご教示いただけますと幸いです。
よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/20 03:45
退会済みユーザー
2021/09/20 05:01 編集
2021/09/20 04:52
退会済みユーザー
2021/09/20 05:00 編集
2021/09/20 05:05
退会済みユーザー
2021/09/20 05:14
2021/09/20 05:21
退会済みユーザー
2021/09/20 05:42 編集