1. TOPTOP
  2. Webサービス
  3. Google
  4. Googleフォームで送信したあとにGoogle App Scriptで自動返信メールを送信する方法

Googleフォームで送信したあとにGoogle App Scriptで自動返信メールを送信する方法

gas_sendamil_0

Googleフォームをお問い合わせを作ってもデフォルトの状態では、お問い合わせをしていただいた方に自動返信メールを送信することはできません。今回の記事では、Googleフォームでお問い合わせをした人に内容の「写し」を渡すための自動返信メールをGoogle App Scriptで作成する方法についてご紹介します。

Googleフォームの作成と集計シートの確認

あらかじめGoogleフォームでお問い合わせフォームを作っておきます。

gas_form_sendmail_2_2

作成したお問い合わせフォームに基づいたスプレッドシートを呼び出しておきます。

自動返信メールを送信するためのスクリプト

gas_form_sendmail_3

次にGoogleスプレッドシートにあるメニューバーの[ツール]をクリックして、その中にある[ツール]から[スクリプトエディタ]をクリックします。

gas_form_sendmail_4

すると「無題のタイトル」という名前で、”function myFunction() {}”で始まるほぼ白紙のエディタファイルが表示されます。

gas_form_sendmail_5

このエディタファイルに自動返信メールを送信するためのスクリプトを記述します。プロジェクト名は自分が分かりやすい名前をつけておきましょう。

スクリプトの内容

function superExpress() {
 
  var title = "【自動送信メール】 東海道・山陽新幹線ご乗車のお申し込みありがとうございます";
  var body
  = " 東海道・山陽新幹線ご乗車のお申し込みありがとうございます。\n"
  +"下記の通りご乗車の申し込みを受け付けました。\n\n"
  + "------------------------------------------------------------\n";
  var footer
  = "------------------------------------------------------------\n\n"
  + "内容を確認後、特急券・乗車券のご購入方法をお知らせします。";
 
  var name = 'あなたの名前を教えてください';
  var mail = 'あなたのEmailアドレスを教えてください';
  var fruit = '乗りたい新幹線を教えてください';
  var application = '質問やご不明な点があれば記入してください';
  
  var address = "";
  var sheet = SpreadsheetApp.getActiveSheet();
  var rows = sheet.getLastRow();
  var cols = sheet.getLastColumn();
  var rg = sheet.getDataRange();
  
  Logger.log("rows="+rows+" cols="+cols);
  
  for (var i = 1; i <= cols; i++ ) {
    var col_name = rg.getCell(1, i).getValue();
    var col_value = rg.getCell(rows, i).getValue();
    
    body += "■"+col_name+"\n";
    body += col_value + "\n\n";
    
    if ( col_name === name ) {
      body = col_value+" 様\n\n"+body;
   }
    
    if ( col_name === mail ) {
      address = col_value;
    }
    
  }
  
  body += footer;
 
  GmailApp.sendEmail(address,title,body);

}

なお今回、自動返信メールを作成するにあたって記述したスクリプトは上記の通りです。 「IT活用で高収益、仕事効率100倍!」さんのGoogle フォーム(2)自動返信する・お問い合わせを通知する方法という記事を参考にさせていただきました。

トリガーの作成

次にトリガーを作成します。上記のスクリプトを記述しただけでは、自動返信メールは送信されません。Googleフォームでお問い合わせをした方が、フォームを送信したタイミングでその方の元に「写し」となるメールを送信するよう、スプレッドシート側でトリガーを設定する必要があります。

トリガーの設定

gas_form_sendmail_6_2

プロジェクトのメニューバーにある[編集]から[現在のプロジェクトのトリガー]をクリックします。

gas_form_sendmail_7

「プロジェクトのトリガー」の画面が表示されます。画面の右下にある「トリガーを追加」をクリックします。

gas_form_sendmail_8

「Google App Script ・・・ トリガーを追加」という画面が表示されます。「イベントのソースを選択」が[スプレッドシートから]になっていることを確認した上で、「イベントの種類を選択」を[フォーム送信時]に変更します。[保存]ボタンを押します。

アクセスの許可

gas_form_sendmail_9

「Google App Script ・・・ トリガーを追加」の画面で[保存]ボタンを押すと、「アカウントの選択」という画面が表示されます。プロジェクトにログインしたいアカウントを選択してクリックします。

gas_form_sendmail_10_2

「このアプリは確認されていません」という表示が出ますが、[詳細]をクリックします。下にスクロールをして[無題のプロジェクト(安全ではないページ)に移動]をクリックします。

gas_form_sendmail_11

「無題のプロジェクトがGoogleアカウントへのアクセスをリクエストしています」というタイトルの画面が表示されますので[許可]のボタンをクリックします。以上でトリガーが設定されました。

gas_form_sendmail_12

再度、「プロジェクトのトリガー」の画面をクリックするとフォームを送信したときに自動返信メールが送信されるイベントが作成されていることが分かります。

自動返信メールの確認

最後にGoogleフォームで送信したときに、フォームに入力したメールアドレス宛に自動返信メールが届くかどうか確認します。

gas_form_sendmail_13

Googleフォームに必要事項を記入の上、[送信ボタン]をクリックします。

gas_form_sendmail_14

するとスクリプトで記述した内容に基づいて、自動返信メールが送信されたことが分かります。