前提・実現したいこと
営業をやっています。問い合わせフォームからくる資料請求や打合せ希望のメールをスプレッドシートに転載し、営業メンバーの方が共有できるようにリスト化するという作業が毎日発生しています。
Gmailに送られてくるこれらのお問合せのメールを、GASを用い、スプレッドシートに自動で転載できるようにできれば仕事が減ると思い、3日ほど前からGASの勉強をし始めました。
発生している問題・エラーメッセージ
エラーは発生していないのですが、期待しているようにデータがスプレッドシートに反映されず困っています。
反映したい問合せメールは以下の通りです。
集計テストというスプレッドシートに反映予定です。また、メールには資料ダウンロードとラベルをつけています。
問い合わせ詳細を受け付けました。
お客様へヒアリング対応をお願いします。
━━━━━━━━━━━━━━━━━━━━━━
■ 施設名
〇〇
■お名前
〇〇
■メールアドレス
〇〇
■電話番号
〇〇
■ご希望
〇〇
━━━━━━━━━━━━━━━━━━━━━━
上記のメールをA~F列に以下のようにデータを反映したいです
日付 施設名 お名前 メールアドレス 電話番号 ご希望
しかし、私がいろいろ調べて作ったものだとメール全文しか反映されませんでした。
また、本当に勉強不足で恐縮なのですが、
お力をお借りできないでしょうか。```
GAS
1function getMail01(){ 2 var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 3 var objSheet = objSpreadsheet.getSheetByName(“集計テスト“);//シート名をここに入力 4 var sheet = SpreadsheetApp.getActiveSheet(); 5 //GMAILから取得するものを指定 6 var start = 0; 7 var max = 500; 8 var threads = GmailApp.search(‘label:資料ダウンロード is:unread’,start,max); 9 var row = sheet.getLastRow() + 1;//最後の行探してそれ以降に追加 10 for(var n in threads){ 11 var thd = threads[n]; 12 var msgs = thd.getMessages(); 13 for(m in msgs){ 14 var msg = msgs[m]; 15 var body = msg.getBody(); 16 var res = body.split(‘<br>\n<br>‘) 17 // replaceで不要な文字列を削除、splitで改行ごとにuserという変数に代入 18 var user = res[0].split(‘<br />\n’); 19 //この部分はメール文面の前半部分になります。取りたり文字列を必要に応じて書き換えてください 20 sheet.getRange(row, 1).setValue(String(user[0]).replace(“■ 施設名\n([\s\S]*)■お名前“,”“)); 21 sheet.getRange(row, 2).setValue(String(user[1]).replace(“■お名前\n([\s\S]*)■メールアドレス“,”“)); 22 sheet.getRange(row, 3).setValue(String(user[2]).replace(“■メールアドレス\n([\s\S]*)■電話番号“,”“)); 23 sheet.getRange(row, 4).setValue(String(user[3]).replace(“■電話番号\n([\s\S]*)■ご希望“,”“)); 24 sheet.getRange(row, 5).setValue(String(user[4]).replace(“■ご希望“,”“)); 25 row++ 26 } 27 thd.markRead(); 28 Utilities.sleep(1000); 29 } 30} 31 32 33 34 35 36
試したこと
正直何が間違っているのか分からない状態です。
補足情報(FW/ツールのバージョンなど)
初歩的なところがわからず大変お手数をおかけしますが、ご指導いただけると嬉しいです。
よろしくお願いします。