前提・実現したいこと
Googleフォームで、セミナー応募に対する自動返信の雛形を作っています。
実行をしようとした際、以下のエラーコードが出てしまう、かつメールが送信されません。
発生している問題・エラーメッセージ
TypeError: undefined からプロパティ「response」を読み取れません。 と表示されてしまう。
該当のソースコード
1 2function submitForm(formData) { 3 var emailAddress = formData.response.getRespondentEmail(); 4 var questioneeName = ""; 5 6 //set titles of the questions that you want to get answers 7 var questionForName = "名字" 8 var responses = formData.response.getItemResponses(); 9 var message = ''; 10 for (var i = 0; i < responses.length; i++) { 11 var response = responses[i]; 12 var question = response.getItem().getTitle(); 13 var answer = response.getResponse(); 14 message += (i + 1).toString() + '. ' + question + ': ' + answer + '\n'; 15 16 17 if ( question == questionForName) { 18 questioneeName = answer; 19 } 20 } 21 sendEmail(emailAddress, questioneeName) 22} 23 24function sendEmail(emailAddress, questioneeName) { 25 26 var recipient = emailAddress; 27 var subject = "ご応募ありがとうございます"; 28 var body = questioneeName + " 様\n\n" + "こんにちは。\n\n"; 29 30"この度は、【●●●】にご応募いただきありがとうございます。\n"; 31"以下の内容で回答を受け付けました。\n\n"; 32 33+ message; 34 35"\n\nそれではよろしくお願い致します。"; 36 37 38 var options = { name: "●●●運営事務局" }; 39 40 try { 41 MailApp.sendEmail(recipient, subject, body, options); 42 }catch(e){ 43 var admin = "example.gmail.com"; 44 MailApp.sendEmail(admin, "【自動返信失敗】メール送信中にエラーが発生しました", e.message); 45 } 46} 47 48
補足情報(FW/ツールのバージョンなど)
はじめスプレッドシートの方で作っていましたが、フォームの方に変更しました。
ど素人なので、人に聞きつつ見よう見まねで作っております。よろしくお願いいたします。
以下のようなものも試してみましたが、rowやcolumnが働かず?うまくいきませんでした。
var sheet = SpreadsheetApp.getActiveSheet();
var row = sheet.getLastRow();
var column = sheet.getLastColumn();
var range = sheet.getDataRange();
Logger.log("row="+row+" column="+column);
for (var i = 1; i <= column; i++ ) {
//スプレッドシートの入力項目名
var item = range.getCell(1, i).getValue();
//スプレッドシートの入力値
var value = range.getCell(row, i).getValue();
//本文(body)に、フォームの入力項目を追加
body += "■"+item+"\n";
//本文にフォームの入力内容を追加
body += value + "\n\n";