Googleフォームの自動返信のスクリプトを書いているのですが、分岐が多いため
答えていない質問は返信メールでの控えで非表示にしたいと考えています。
お力を頂ければ幸いです。よろしくお願いしたします。
以下がソースとなります。
function MailFrom() { Logger.log('MailFrom() debug start'); var NAME_COL_NAME = 'お名前'; var MAIL_COL_NAME = 'メールアドレス'; var PRODUCT_COL_NAME = '製品名'; var TIMESTAMP_LABEL = 'タイムスタンプ'; var subject = ""; var ibody = ""; var body = ""; var admin = "メールアドレス"; var from = ""; // from: var name = ""; // name: var cc = ""; // CC: var bcc = ""; // BCC: var reply = admin; // Reply-To: var to = ""; // To: (入力者のアドレスが自動で入ります) try{ var form = FormApp.openById('ID'); var formResponses = form.getResponses(); for (var i = 0; i < formResponses.length; i++) { var editURL = formResponses[i].getEditResponseUrl(); } Logger.log("Edit URL = " + "," + editURL); var sh = SpreadsheetApp.getActiveSheet(); var rows = sh.getLastRow(); var cols = sh.getLastColumn(); var rg = sh.getDataRange(); Logger.log("rows = " + rows + " cols = " + cols); for (var j = 1; j <= cols; j++ ) { var col_name = rg.getCell(1, j).getValue(); // カラム名 var col_value = rg.getCell(rows, j).getValue(); // 入力値 if ( col_name === NAME_COL_NAME) { ibody += col_value + " 様\n\n"; } if ( col_name === PRODUCT_COL_NAME ) { subject += "【自動送信】"+col_value+"です"; } } subject +=col_value; body += ibody; body += "ほにゃらららら\n\n" + "\n"; for (var j = 1; j <= cols; j++ ) { var col_name = rg.getCell(1, j).getValue(); var col_value = rg.getCell(rows, j).getValue(); if ( col_name === "") { var flag = 1; } else { var flag = 0; } if ( flag === 0 ) { body += "【" + col_name + "】\n"; body += " " + col_value + "\n\n"; } // 送信先を指定 if ( col_name === MAIL_COL_NAME ) { to = col_value; } } body += " ほげほげ: \n" + editURL + "\n\n"; // フッター var footer = ""; body += footer; // 送信先オプション var options = {}; if ( cc ) options.cc = cc; if ( bcc ) options.bcc = bcc; if ( reply ) options.replyTo = reply; if ( name ) options.name = name; if ( from ) options.from = from; // メール送信 if ( to ) { MailApp.sendEmail(to,subject,body,options); }else{ MailApp.sendEmail(admin, "【失敗】Googleフォームにメールアドレスが指定されていません", body); } } catch(e){ MailApp.sendEmail(admin, "【失敗】Googleフォームからメール送信中にエラーが発生", e.message); } }
期待した動作と、(おそらく意図していない)現状の動作がどうなっているか、について追記をお願いします。
あなたの回答
tips
プレビュー