「重要」のラベルがついたGmailの内容をGASで自動的にスプレッドシートに書き出す処理について伺いたいです。
gmail
1ご注文番号 : A01905020554 2受付日時 : 2019/05/02 04:53:36 3============================== 4■ご注文内容 5------------------------------ 6商品名 : REX 7商品番号 : GO 8販売価格 : 1,980円 9数量 : 1 10 11小計 : 1,980円 12============================== 13商品合計 : 1,980円 (うち消費税:146円) 14送料 : 0円 15手数料 : 0円 16合計 : 1,980円
この本文から受付日時と合計のみを取り出すために
(スプレッドシートのスクリプトエディタで)
javascript
1function getMail(){ 2 var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 3 var objSheet = objSpreadsheet.getSheetByName("シート1"); 4 var sheet = SpreadsheetApp.setActiveSheet(objSheet); 5 6 7 var start = 0; 8 var max = 500; 9 var threads = GmailApp.search('label:重要 is:unread',start,max); 10 var row = sheet.getLastRow() + 1; 11 12 for(var n in threads){ 13 var thd = threads[n]; 14 var msgs = thd.getMessages(); 15 16 for(var m in msgs){ 17 var msg = msgs[m]; 18 var body = msg.getBody(); 19 20 var date = body.match(/^受付日時 :\s*?:(.+)$/m)[1]; 21 var sum = body.match(/^商品合計 :\s*?:(.+)$/m)[1]; 22 sheet.appendRow([date, sum]); 23 24 25 } 26 thd.markRead(); 27 Utilities.sleep(1000); 28 } 29} 30 31
と打ち込んだら
TypeError: null からプロパティ「1」を読み取れません。(行 20、ファイル「コード」)
と反映されてしまいました。理想は2019/05/02 04:53:36と1,980円が反映されて欲しいです。
過去の質問、回答など参考にさせて頂きましたが、なかなかうまくいきませんでした。
もしよろしければどこが間違っているかご指摘願いたいです。よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー