Googleフォームから自動返信メールを送る
サンプルコード
コードだけアップ。
メール本文のテンプレートをスプレッドシートから取得している。
スクリプトにハードコーディングすると変更しづらいのでこのほうがよいかと思う。
function sendMailFromForm(e) { // 件名、本文 var subject = "受付完了"; //スプレッドシートから返信メール本文を取得する var body = getBody(); Logger.log(body); // 列名の指定 var MAIL_COL_NAME = 'メールアドレス'; // メール送信者 var admin = "sample@hoge.com"; var cc = ""; // Cc: var bcc = admin; // Bcc: var reply = admin; // Reply-To: var to = ""; // To: // 送信先オプション var options = {}; if ( cc ) options.cc = cc; if ( bcc ) options.bcc = bcc; //bccで確認メールを自分宛に送ることが可能 if ( reply ) options.replyTo = reply; //返信先メールアドレス try{ // スプレッドシートの操作 var sh = SpreadsheetApp.getActiveSheet(); //スプレッドシートをshに入れる var new_row = sh.getLastRow(); //シートの最終行取得する var col = sh.getLastColumn(); //右端の列を取得する var r = sh.getDataRange(); // メール件名・本文作成と送信先メールアドレス取得 for (var j = 1; j <= col; j++ ) { var col_name = r.getCell(1, j).getValue(); // 列名を取得。列見出しは1行目にあるのでgetCell(行数、列数)の行数=1で固定 var cell_value = r.getCell(new_row, j).getValue(); // 一番下の行のセル値、すなわち最新のフォームデータの値を取得 if ( col_name === MAIL_COL_NAME ) { to = cell_value; } } // メール送信 MailApp.sendEmail(to, subject, body, options); } catch(e) { MailApp.sendEmail(admin, "Error:自動返信メール送信エラー(Googleフォーム): ", e.message); } } //「返信」シートA1セルの中身を取得する関数 function getBody() { var bk = SpreadsheetApp.getActiveSpreadsheet(); var sh = bk.getSheetByName("body"); if(sh != null) { return sh.getRange("A1").getValue(); } }