Google Drive(Googleドキュメント)を利用した、お問い合わせフォーム作りをご紹介します。Googleアカウントさえあれば誰でも比較的簡単に設置できるフォーム、アンケートなどに使用するのが一般的ですが、スクリプトを使えばメールフォームとして活用することができます。
1. Google Driveの作成 > フォームからフォームを作成する。
テーマを選択。
質問のタイトルに題目を、通常のフォームは「テキスト」を選択して、必要項目を追加していきます。
メッセージ欄は「段落テキスト」を選択。
送信後の表示などを設定してフォームの作成は終了。
完成例。
フォームの編集画面から回答 > 回答先を変更する でスプレッドシートを作成して、入力内容を表示できるようにします。
2. フォームに入力された内容をメールで送信する
スプレッドシートの ツール > スクリプトエディタ を開き、下記のスクリプトに自分のメールアドレスを入力して保存(フロッピーのアイコン)します。
// フォーム送信されたら起動され、最終行の内容をメールに記載して、送信する function sendMailByFormSubmitted() { Logger.log('sendMailByFormSubmitted() start'); // 件名、本文 var subject = "お問い合わせフォーム"; var body = "以下の内容で送信されました。\n\n---------------------------------------\n\n"; // メールアドレス入力カラム名の指定 var MAIL_CLMN_NAME = 'メールアドレス'; var NAME_COL_NAME = 'お名前'; var MAIL_COL_NAME = 'メールアドレス'; var SUBJ_COL_NAME = '件名'; // メール送信先(管理者等) var mail_admin = "自分のメールアドレス"; var mail_cc = mail_admin; var mail_reply = mail_admin; var mail_to = ''; try{ // スプレッドシートの操作 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 clmn_name = rg.getCell(1, j).getValue(); // カラム名 var clmn_value = rg.getCell(rows, j).getValue(); // 入力値 body += ( clmn_name + ":" + clmn_value + "\n\n" ); if ( clmn_name === MAIL_CLMN_NAME ) { mail_to = clmn_value; } } // メール送信 if ( mail_to ) { MailApp.sendEmail(mail_to, subject, body, {cc : mail_cc, replyTo : mail_reply}); }else{ MailApp.sendEmail(mail_admin, "error spreadsheet none mailaddress", body); } }catch(e){ MailApp.sendEmail(mail_admin, "error spreadsheet func: sendMailByFormSubmiited()", e.message); } }
リソース > 現在のプロジェクトのトリガー を選択。
スプレッドシートから フォーム送信時に通知するように設定して、保存。
メールフォームに入力してみて、以下のようなメールが届けば成功です。
参考サイト