前提・実現したいこと
件名が一致しているメールを取得し、
お客様名と問合せ内容をを取得してスプレットシートへ転記したい。
問合せの基本的なフォーマットは以下の通りです。
■ホームページ
お客様よりお問い合わせです。至急ご対応をお願いします。
【名前】aaa
【名前カナ】 aaa
【メールアドレス】 aaa@gmail
【電話番号】 -
【お問い合わせ内容】
aaaa
aaaa
aaaa
=====================================================================
■今回のお問い合わせは、合計 2 件です。
商品詳細は以下のとおりです。
〔商品番号〕99999999
〔商 品 名〕あああ ああああ
〔 料 金 〕100,000円
〔問合番号〕99999999
https://www.
〔商品番号〕99999999
〔商 品 名〕あああ ああああ
〔 料 金 〕100,000円
〔問合番号〕99999999
https://www.
=====================================================================
発生している問題・エラーメッセージ
問題1:問い合わせの件数が1件~5件となるケースがあり、その都度商品番号~問合番号を取得して配列させる必要がある。 問題2:【お問い合わせ内容】が自由記入欄の為、商品詳細を行数指定する事が以下のコードだと難しい。
該当のソースコード
function getMail() { // 検索条件に該当するスレッド一覧を取得 let threads = GmailApp.search('subject:お知らせメール -label:処理済み'); threads.forEach(function(thread) { let messages = thread.getMessages(); messages.forEach(function(message) { let plainBody = message.getPlainBody(); let date = plainBody.match(/お問合せ日時:(.*)/); let name = plainBody.match(/名前(漢字):(.*)/); let email = plainBody.match(/メールアドレス:(.*)/); let tel = plainBody.match(/TEL:(.*)/); let name = plainBody.match(/商 品 名:(.*)/); let sheet = SpreadsheetApp.getActive().getSheetByName('aaaa') let lastRow = sheet.getLastRow() + 1; sheet.getRange(lastRow, 1).setValue(date[1]); sheet.getRange(lastRow, 2).setValue(name[1]); sheet.getRange(lastRow, 3).setValue(email[1]); sheet.getRange(lastRow, 4).setValue(tel[1]); sheet.getRange(lastRow, 5).setValue(name[1]); }); let label = GmailApp.getUserLabelByName('処理済み'); thread.addLabel(label); }); }
試したこと
問合せが1件の場合、
該当検索ワードが1つの為、実行できるのですが、
2件以上の場合、該当検索ワードが2つ以上の為、エラーが出てしまい…
かなり長時間ネットで調査したのですが…
GAS初心者の為構築できませんでした。
大変恐れ入りますが、ご教授いただけますと幸いです。