みっきー申す

ITに関する興味関心のまとめ、サイバーセキュリティニュースのまとめ、Twitterで配信中の情報まとめなどを公開します。

Googleフォームに来た回答に自動で確認メールを送信させてみた

Googleフォーム、便利ですよね~

簡単な調査や確認を取るためによく使うのですが、 - 例えばセミナーのアンケートであったり - 出席確認であったり - イベントの申し込みであったり

その用途は幅広いですね!

ただ、回答した人に対して、何らかのメッセージが届いたらいいとは思いませんか?

例えば、

  • アンケートに答えた人に対して、専用のリンクを張って、セミナー資料を配布したり
  • 出席者に対してのみ、場所の案内図や参加費の振込先を記載したり
  • イベント申し込みの特典を返信メールで送ったり

特にクラウドストレージやスマホ決済が普及しつつある今、少し柔軟に考えれば、これまでのWebの常識も覆せることもできるかもしれません。

さて、具体的な方法について、以下で紹介していきます。


Googleフォームの作成

Googleフォームについては、十分知っているよ!

という方は、この章は飛ばしていただいてよいかと思います。

まず、googleフォームの作成画面より、フォームを新規作成します。

https://www.google.com/intl/ja_jp/forms/about/

f:id:micro_keyword:20191122191810p:plain:w300

f:id:micro_keyword:20191122191741p:plain:w300

続いて、自身がフォームにて収集したい情報などを基に、質問項目を作成します。

完成したら、送信ボタンをクリックし、任意の形式で出力します。

f:id:micro_keyword:20191122191749p:plain:w300

f:id:micro_keyword:20191122191754p:plain:w300

私の場合は、URLで出力して、それを配布するようにしました。

f:id:micro_keyword:20191122191758p:plain:w300

たとえば、このURLをQRコードにして配布するのもありですね。

QRコードの生成は、「QR 生成」などでググればたくさん出てくると思うので、そちらを参考にして、使ってみてください。

こんな感じで作ってみました。

f:id:micro_keyword:20191122191802p:plain:w300


GASをGoogleフォームに組み込む

GASというのは、Google Apps Scriptの略で、Googleが提供する JavaScriptベースの開発環境です。

これを用いることで、Googleの様々なサービスと連携することができます。

プログラミングをやったことはもちろん、これからプログラミングを始めようって人にも、実用性が高く学びやすい言語だと思います。

StackOverflowの2019年の調査においても、JavaScriptが地球上で最も広く利用されている言語だとされています。

https://insights.stackoverflow.com/survey/2019

f:id:micro_keyword:20191122191806p:plain:w300

さて、具体的な方法ですが、まずは、先ほどのGoogleフォームの編集画面よりスクリプトエディタを開きます。

f:id:micro_keyword:20191122191819p:plain:w300

そして、コードを書きます。

f:id:micro_keyword:20191122191822p:plain:w300

コードサンプルは、以下に記載します。

// FormApp.getActiveForm()
function autoMailSender(e){
  Logger.log('autoMailSender execute...');

  var itemResList = e.response.getItemResponses();
  var name = itemResList[0].getResponse(); //フォームの1番目の質問から取得する回答
  var mail = itemResList[2].getResponse(); //フォームの3番目の質問から取得する回答
  var border = '----------\n';
  var addr = '******@******'; //管理用アドレス
  var title = '[自動送信]【2019年第一回セキュリティ勉強会】参加申し込みを受け付けました';
  var msg = '【応募内容】\n\t<氏名>: ' + name + '\n\t<メールアドレス>: ' + mail + '\n';
  var msgAccount = '\n 懇親会に参加される方は、以下の口座へ、懇親会費3,000円の振り込みをお願いします。\n'
  + 'なお、振込手数料はご自身での振り込みになりますので、予めご了承ください。\n '
  +'当日支払いの場合は、3,500円となりますので、ご協力のほどよろしくお願いいたします。\n\n'
  +'振込口座は以下になります。\n'
  + border 
  + 'みっきー銀行 \n 申す支店  100 \n 普通 1000000 \n 名義 ミツキ モウス \n '
  + border
  var msgTemplate = '※このメールはGoogleフォームからの自動送信メールです。\n  お問い合わせは本メールへ返信ください。\n'
  var options = {
    name: 'セキュリティ勉強会事務局',
    cc: addr
  }; //ccに含む連絡先の指定

  Logger.log('Mail sending...');


  // 応募者向けメールの送信
  var mailBody = name
    + ' 様\n\n'
    + '下記の内容で、受付けました。\n'
    + border
    + msg
    + border
    + msgAccount
    + border
    + msgTemplate;
  GmailApp.sendEmail(mail, title, mailBody, options);
}

コードが書ければあと一歩!

トリガーの指定をします。

f:id:micro_keyword:20191122193116p:plain:w300

f:id:micro_keyword:20191122191716p:plain:w300

f:id:micro_keyword:20191122191721p:plain:w300

ポイントは、イベントソースを「フォームから」にすること、 あとはお好みですが、私は、エラー通知設定を「今すぐ通知を受け取る」にしました。

そして、フォームに誰かが投稿すると。。。

f:id:micro_keyword:20191122191728j:plain:w300

このような形で、自動でメールが飛んできます!

便利~


まとめ

このような形で、とても簡単にフォームをトリガに、メールで通知することができます。

とても便利だし、手軽ですよね。

この記事は、会社の元同僚に教えてもらって、実践・執筆してみました。 彼もちょこちょこ記事を書いているようなので、もしよかったら見てみてください。

https://qiita.com/shIbaInu42

この記事を参考にこんなことできたよ~

みたいなことがあれば教えてもらえると嬉しいです!

ではでは。