LoginSignup
4
6

More than 5 years have passed since last update.

Googleフォームをサイトに埋め込み、自動返信メールを送信する(2)

Posted at

Googleフォームの埋め込みとカスタマイズまではこちら

Googleフォームから自動返信メールを送信する

自動返信させるのは、Googleフォームの回答が保存されるスプレッドシートにスクリプトを書く方法とGoogleフォームにスクリプトを書く方法がありますが、ここではGoogleフォームに書く方を記します。

自動返信のスクリプトを書く

  1. Googleフォームの編集画面、右上のメニューから「スクリプトエディタ」を選択し、スクリプトエディタを開きます
  2. スクリプトエディタに以下のように記述します。
auto_reply.gs
function onFormSubmit(e) {
  var itemResponses = e.response.getItemResponses();
  var fullname = itemResponses[0].getResponse(); //申込者の氏名を取得
  var email = itemResponses[1].getResponse(); //申込者のメールアドレスを取得

  var subject = 'お菓子パーティーへの申込みが完了しました。';
  var body = fullname+'様\nお菓子パーティーへようこそ!\n下記の内容で申込みを受付けました。\n\n';

  for (var i = 0; i < itemResponses.length; i++) {
    var item = itemResponses[i];
    body += '【' + item.getItem().getTitle() + '】\n'
    body += item.getResponse() + '\n\n'
  }

  GmailApp.sendEmail(email, subject, body);

}

申込者の氏名、メールアドレスの取得は作成したGoogleフォームでの順番で指定していますので、フォーム毎に変える必要があります。
image.png

トリガーを作成する

保存ボタン(フロッピーディスクみたいな)をクリックして保存後、トリガーボタン(時計みたいな)をクリックします。G Suite Developer Hubというページが開くので、「新しいトリガーを作成します」をクリック。追加の設定を行い、保存します。


実行する関数:先程書いたスクリプトのfunction名
実行するデプロイを選択:Head
イベントのソースを選択:フォームから
イベントの種類を選択:フォーム送信時
image.png

アクセスリクエストを許可する

Googleにログインを促すウインドウが開くので使用するアカウントを選択、その後アクセスリクエストを許可します。
image.png
許可後、先程のトリガー作成画面に戻るとトリガーが作成されていることを確認できます。
image.png

自動返信のテストをする

自サイトに設置したフォームでテスト送信を行います。
フォームに入力したメールアドレスにメールが届いていれば成功。GmailApp.sendEmailのbodyにfromやnameを指定して差出人を変更することも可能。(認証が必要)

今後の課題

今回は申込者の氏名・メールアドレスの取得に配列の番号で直接指定してしまっているので、汎用性...
他の方法で取得可能かを試したい。

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6