前提・実現したいこと
申請フォームをGoogleフォームで作成
フォームの回答をスプレッドシートに蓄積
スプレッドシートのGASにて下記動作を行いたくコードを書きました。
フォーム送信時に、作成した選択肢の回答ごとに、別々の担当者へフォーム送信があった旨の連絡と、承認依頼をしたい。
固定の担当者へは動作確認できたが、回答ごとに異なる担当者へメール送信するコードを書いているつもりがエラーになるためご意見聞けたら嬉しいです。
初心者ですがよろしくお願いいたします。
発生している問題・エラーメッセージ
toのアドレスには送信されるが、回答ごとに設定したアドレスに送信されない。
該当のソースコード
function sendMessage(e) { var sheet = SpreadsheetApp.getActiveSheet(); var row = sheet.getLastRow(); sheet.getRange(row, 0).setValue('確認中'); let url = '@@@@@@'; //公開したウェブアプリケーションのURL url += `?row={row}&answer=`; const subject = '申請書が提出されました'; var to ="aaa@aaa.com"; var title = SpreadsheetApp.getActiveSheet(); var ans = SpreadsheetApp.getActiveSheet(); if (title==="質問") { //Googleフォームでの選択式質問 if (ans==="回答1") { to = "ddd@ddd.com"; } else if (ans==="回答2") { to = "bbb@bbb.com"; } else if (ans==="回答3") { to = "cccc@cccc.com"; } } // 項目を取得 var name = sheet.getRange(row, 0).getValue(); let body = ''; body += "" + name + " さんから、\n"; body += '申請書が提出されました。\n'; body += '\n'; body += '【 承認 】する場合は、以下URLをクリックしてください\n'; body += url + 'ok\n'; body += '\n'; const options = {name: '申請'}; GmailApp.sendEmail(to, subject, body, ); } function doGet(e) { const sheet = SpreadsheetApp.getActiveSheet(); var row = sheet.getLastRow(); sheet.getRange(row, 0).setValue('承認'); const subject = '申請が承認されました。'; var name = sheet.getRange(row, 0).getValue(); let body = ''; body += 'あなたの申請が 【承認】 されました。\n'; body += '\n'; GmailApp.sendEmail(name, subject, body); //申請者にメールを送る let html = ''; html += '<h1>承認</h1>'; html += '承認しました。</p>'; html += '<ul>'; html += '</ul>'; return HtmlService.createHtmlOutput(html); }
###試したこと
ver to = を丸ごと消すと送り先が無いというメッセージが出るので、指示するコードが足りないということは分かるのですが…
あとは、独学でネット上で公開されているものを色々組み合わせてみましたが、うんともすんともいかず。
申し訳ありません。
よろしくお願いいたします。
あなたの回答
tips
プレビュー