Googleドライブ(旧Googleドキュメント)で作ったフォームが送信されると、確認メールが送信されるようにするスクリプト

無料でウェブサイトを作る際に候補に上がるのがGoogleサイトだ。
Googleサイトを使えば、Webサイトを専門知識や構築ソフトウェアを使わずに作ってしまうことができる。
デザイン的には限られたものにはなるが、それでもインターネットで情報発信するという意味では十二分の機能を持っていて、Googleの他のアプリケーション(カレンダーやドライブ・ドキュメントなど)と連携させることで、お店の営業内容やスケジュールといった細かな予定をWebサイトで簡単に表示させたり、問い合わせやアンケートフォームを入力してもらったりなども、簡単にアウトプットすることが可能だ。これらのアプリケーションをすべて包括的に利用できる、グループウェアのGoogle Appsは、本当に便利で、私も重宝して利用している。

ところで、上述の問い合わせやアンケートフォームを入力してもらうという件であるが、Googleサイトにこれを組み込むまでは、おそらく誰もが簡単に行えるだろう。だが、このフォームはこの後の利便性にかけている。
つまり、フォームに入力があり、送信された際、送信した側や管理者側へ、メールが送信されてこないのだ。したがって、管理者は、つねに「何かフォームに入力があったかな」と、Googleドライブをチェックしなければならないのである。これは不便。それに送信した側にしてみても、フォームに入力して[送信]ボタンを押したら、ただ単に「ありがとうございました。」とだけ表示されてお終いでは、なんとも心寂しいであろう。

私の知人にも、GoogleサイトでWebサイトビジネスを運営されている方がおられ、フォーム入力と同時にメールを自動送信するようにしたいといった相談を受け、スクリプトを組み込んだことがあった。先日、また違うフォームで同様のことを行いたいという相談を受け、再度組み込んだのだが、スクリプトの内容はともかく、組み込み方はそれほど難しくないので、以下にその方法を記しておくことにする。スクリプトは文中に記載してある物をコピー&ペーストし、必要に応じて要所のみ書き換えることで使うことができる。

Googleドライブ(旧Googleドキュメント)で作ったフォームが送信されると、確認メールが送信されるようにする


1. まずはGoogleドライブにお問い合わせやアンケートなどのフォームを作成する。


2. メニューバーの「ツール(Tools)」から、「スクリプトマネージャ(Script Manager)」を選ぶ。


3. 表示されるウィンドウの下にある「新規作成(New)」をクリックすると、上記が表示されるので、左列の一番上にある「空のプロジェクト(Empty Project)」を選ぶ。


4. ワークシート内にすでに記されている数行(function myFunction() {})をすべて消し、以下のコードをコピー&ペーストして、「フロッピーディスク」のアイコンをクリックして保存する。カスタマイズや変更は、上図を参考に。

function sendMailByFormSubmitted() {
Logger.log('sendMailByFormSubmitted() start');// 件名、本文
var subject = "様 お問い合わせ・お申込み ありがとうございます/XYZ Company";
var body = "この度は、お問い合わせ・お申込みをいただき、ありがとうございます。nこちらから、別途メールでご連絡いたしますので、しばらくおまちくださいませ。nn株式会社 XYZカンパニーnnn=========================n▼ お問い合わせ・お申込み内容 ▼n=========================n";// メールアドレス入力カラム名の指定
var MAIL_CLMN_NAME = 'メールアドレス';
var APPLICANT_NAME = 'お名前(漢字)';// メール送信先(管理者等)
var mail_admin = "asdfqwerty@xyzcompany.com";
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 var clmn_name = rg.getCell(1, j).getValue(); // カラム名
var clmn_value = rg.getCell(rows, j).getValue(); // 入力値
body += ( clmn_name + " : " + clmn_value + "n" );

if ( clmn_name === MAIL_CLMN_NAME ) {
mail_to = clmn_value;
}
if ( clmn_name === APPLICANT_NAME ) {
apname = clmn_value;
}

}

// メール送信
if ( mail_to ) {
MailApp.sendEmail(mail_to, apname + 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);
}
}


5. 次に「リソース(Resource)」内にある「スクリプトのトリガ(Current Script’s Triggers)」を選択する。


6. 「プロジェクトのトリガ(Current project’s triggers)」ウィンドウが表示されるので、 「新しいトリガを作成(Add a new triggers)」をクリックし、イベントを「On Form Submit」に変更して、適当な名前をつけて「保存(Save)」する。


7. 初回のみ認証を要求されるので、「確認(Authorize)」をクリックする。

これで完成。
あとはスクリプトが組み込まれたフォームを、サイト内に貼り付ければそれでOKとなる。

Comment

Copied title and URL