前提・実現したいこと
Googleフォームでイベントの申込みページを作成し、確認メールを自動返信するようスクリプトエディタを使って設定しました。当初はうまく動作していたのですが、公開後にフォームに質問を追加したところエラー(【失敗】Googleフォームにメールアドレスが指定されていません)が出るようになりました。
スクリプトはこちらのページからコピペしました
https://liapoc.com/new-google-form.html
回答の内容がそのまま確認メール本文に反映されるようになっているのですが、その確認メールでは自分が作成したフォームにはない2つ目のメールアドレス入力項目ができています。実際のフォームには存在しないメールアドレス入力項目がスクリプト上では存在し(?)そこが空欄のためエラーが出ているようです。
既に公開してしまっているためフォーム自体を作り直すことは難しいのですが、対処法はあるでしょうか?
※プログラミング経験は全くなく、今回のソースコードは見様見真似で作りました。
発生している問題・エラーメッセージ
【失敗】Googleフォームにメールアドレスが指定されていません
該当のソースコード
function sendMailGoogleForm() { Logger.log('sendMailGoogleForm() debug start'); //------------------------------------------------------------ // 設定エリアここから //------------------------------------------------------------ // 件名、本文、フッター var subject = "[講演の申込みを受け付けました]"; var body = "お申込みありがとうございます。こちらが講演当日の時間と集合場所になります。ご確認ください。\n\n【タイトル】\n\n【日程】\n\n【場所】\n\n\n" + "------------------------------------------------------------\n"; var footer = "------------------------------------------------------------\n\n" + "それでは当日、お待ちしております。\nよろしくお願いいたします。"; // 入力カラム名の指定 var NAME_COL_NAME = '氏名'; var MAIL_COL_NAME = 'メールアドレス'; // メール送信先 var admin = "送信者メールアドレス"; // 管理者(必須) var sendername = "送信者名";//送信者名(必須) var cc = ""; // Cc: var bcc = admin; // Bcc: var reply = admin; // Reply-To: var to = ""; // To: (入力者のアドレスが自動で入ります) //------------------------------------------------------------ // 設定エリアここまで //------------------------------------------------------------ try{ // スプレッドシートの操作 var sheet = SpreadsheetApp.getActiveSheet(); var rows = sheet.getLastRow(); var cols = sheet.getLastColumn(); var rg = sheet.getDataRange(); Logger.log("rows="+rows+" cols="+cols); // メール件名・本文作成と送信先メールアドレス取得 for (var i = 1; i <= cols; i++ ) { var col_name = rg.getCell(1, i).getValue(); // カラム名 var col_value = rg.getCell(rows, i).getValue(); // 入力値 ////////////下記を入れる//////////////// if (col_name === "タイムスタンプ"){ continue; } ////////////////上記を入れる//////////// body += "【"+col_name+"】\n"; body += col_value + "\n\n"; if ( col_name === NAME_COL_NAME ) { body = col_value+" 様\n\n"+body; } if ( col_name === MAIL_COL_NAME ) { to = col_value; } } body += footer; // 送信先オプション var options = {name: sendername}; if ( cc ) options.cc = cc; if ( bcc ) options.bcc = bcc; if ( reply ) options.replyTo = reply; // メール送信 if ( to ) { MailApp.sendEmail(to, subject, body, options); }else{ MailApp.sendEmail(admin, "【失敗】Googleフォームにメールアドレスが指定されていません", body); } }catch(e){ MailApp.sendEmail(admin, "【失敗】Googleフォームからメール送信中にエラーが発生", e.message); } }
試したこと
Googleフォームでの「メールアドレス」の項目は一つしか作っていません。
そこではメールアドレスの検証も行うように設定しています。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。