Written by Manabu Bannai

Googleフォームで『特定のメールアドレス』に通知を飛ばす方法〜Google Apps Script〜

PROGRAMMING

Googleフォームの使いこなしTipsです。Googleフォームでは通知設定がありますが、Googleアカウントに紐づいたアカウントにしか通知を送れない欠点があります。

しかし、以下のScriptを利用することで『特定のメールアドレス』に通知を飛ばすことができますので、超絶便利で泣けます。

以下をGoogleAppsScriptエディタへコピペどうぞ。

function sendForm(e){
  // 件名、本文
  var subject = "[問い合わせフォームからの問い合わせ]";  //件名
  var body = "問い合わせ内容n------------------------------------------------------------";  //本文

  // 入力カラム名の指定
  var PRE='nn[';
  var AFT=']nn';
  var NAME_FORM_NAME = 'お名前'; //フォーム作成時に設定した項目名
  var MAIL_FORM_NAME = 'E-mail'; //フォーム作成時に設定した項目名
  var BODY_FORM_NAME = '内容'; //フォーム作成時に設定した項目名
  
  // メール送信先
  var to    = "ここに通知先のEmailアドレスを記入する";


  var name = e.namedValues[NAME_FORM_NAME];
  body+=PRE+NAME_FORM_NAME+AFT+name;
  var mailAddress = e.namedValues[MAIL_FORM_NAME];
  body+=PRE+MAIL_FORM_NAME+AFT+mailAddress;
  var content = e.namedValues[BODY_FORM_NAME];
  body+=PRE+BODY_FORM_NAME+AFT+content+"n";
  MailApp.sendEmail(to, subject, body);   //メールを送信
}

次に、GoogleAppsScriptエディタから『トリガー設定』をします。

以下のフローで設定可能です。
メニュー>>リソース>>すべてのトリガー

設定方法は写真を参考にどうぞ。

gsp

Googleフォームから送信があると、特定のメールアドレスに通知が飛びます。Google神様ありがとうございます。。

メールの件名を動的に操作する場合

以下のようにカスタマイズしましょう。

function sendForm(e){
  // 件名、本文
  var subject = '';  //件名は一旦空っぽにする
  var body = "問い合わせ内容n------------------------------------------------------------";  //本文

  // 入力カラム名の指定
  var PRE='nn[';
  var AFT=']nn';
  var NAME_FORM_NAME = 'お名前'; //フォーム作成時に設定した項目名
  var MAIL_FORM_NAME = 'メールアドレス'; //フォーム作成時に設定した項目名
  var BODY_FORM_NAME = '内容'; //フォーム作成時に設定した項目名
  
  // メール送信先
  var to    = "[email protected]";
  
  var subject = e.namedValues[NAME_FORM_NAME];
  subject = "【お問い合わせきたよ】" + subject + "様より"; 
 //↑ここでは、subject=[お問い合わせをした人の名前]です

  var name = e.namedValues[NAME_FORM_NAME];
  body+=PRE+NAME_FORM_NAME+AFT+name;
  var mailAddress = e.namedValues[MAIL_FORM_NAME];
  body+=PRE+MAIL_FORM_NAME+AFT+mailAddress;
  var content = e.namedValues[BODY_FORM_NAME];
  body+=PRE+BODY_FORM_NAME+AFT+content+"n";
  MailApp.sendEmail(to, subject, body);   //メールを送信 
  
}

フォーム情報を部分的に取得して、メール送信する場合

以下の仕様のフォームを想定します。

■入力項目
・お名前
・E-mail
・都道府県
・電話番号

お名前、E-mail、都道府県を取得して、メール送信する場合は以下

function sendForm(e){
  // 件名、本文
  var subject = '';  //件名
  var body = "内容n------------------------------------------------------------";  //本文

  // 入力カラム名の指定
  var PRE='nn[';
  var AFT=']nn';
  var NAME_FORM_NAME = 'お名前'; //フォーム作成時に設定した項目名
  var BODY_FORM_NAME = 'E-mail'; //フォーム作成時に設定した項目名
  var BODY_FORM_NAME2 = '都道府県'; //フォーム作成時に設定した項目名
  var BODY_FORM_NAME3 = '電話番号'; //フォーム作成時に設定した項目名

  // メール送信先
  var to    = "[email protected]";
  
  var subject = e.namedValues[NAME_FORM_NAME];
  subject = "お問い合わせがありました";

  var name = e.namedValues[NAME_FORM_NAME];
  body+=PRE+NAME_FORM_NAME+AFT+name;    

  var content = e.namedValues[BODY_FORM_NAME];
  body+=PRE+BODY_FORM_NAME+AFT+content+"n";

  var content = e.namedValues[BODY_FORM_NAME2];
  body+=PRE+BODY_FORM_NAME2+AFT+content+"n";
    
  MailApp.sendEmail(to, subject, body);   //メールを送信 
  
}

お名前、E-mail、電話番号を取得して、メール送信する場合は以下

function sendForm(e){
  // 件名、本文
  var subject = '';  //件名
  var body = "内容n------------------------------------------------------------";  //本文

  // 入力カラム名の指定
  var PRE='nn[';
  var AFT=']nn';
  var NAME_FORM_NAME = 'お名前'; //フォーム作成時に設定した項目名
  var BODY_FORM_NAME = 'E-mail'; //フォーム作成時に設定した項目名
  var BODY_FORM_NAME2 = '都道府県'; //フォーム作成時に設定した項目名
  var BODY_FORM_NAME3 = '電話番号'; //フォーム作成時に設定した項目名

  // メール送信先
  var to    = "[email protected]";
  
  var subject = e.namedValues[NAME_FORM_NAME];
  subject = "お問い合わせがありました";

  var name = e.namedValues[NAME_FORM_NAME];
  body+=PRE+NAME_FORM_NAME+AFT+name;    

  var content = e.namedValues[BODY_FORM_NAME];
  body+=PRE+BODY_FORM_NAME+AFT+content+"n";
  
  var content = e.namedValues[BODY_FORM_NAME3];
  body+=PRE+BODY_FORM_NAME3+AFT+content+"n";
  
  MailApp.sendEmail(to, subject, body);   //メールを送信 
  
}

以上となります( ◜◡‾)b

※P.S:無料メルマガで発信中:過去の僕は「ブログ発信で5億円」を稼ぎました。次は「30億円」を目指します。挑戦しつつ、裏側の思考を「メルマガ」から発信します。不満足なら1秒で解約できます。無料登録は「こちら」です。