🕹️

GoogleAppsScriptを使ってメールの自動返信システムを作る

2021/06/22に公開

はじめに

  • オンラインイベントを開催するにあたってGoogleフォームで参加を募っていおり、回答されたフォームからメールアドレスをコピーして手動でZoomのURL等を返信している。
  • 回答してもらった内容を確認のために返信したい。

これらのような作業にめっちゃ時間かけちゃった…そんな経験ありました。
この作業はかなり面倒かつ何かを生み出している感も皆無なので、できれば自動化したいところです。
そこで今回はGoogleフォームに回答してもらったメールアドレスをもとにメールの自動返信をするシステムをGoogleAppsScript(以下GAS)を使って作っていきたいと思います。

  • 「とりあえず理屈はいいからメール業務を自動化したい!」
  • 「コードだけみたい!」
    という方はこちらへ今回使ったコード

フォームを作成する

この作業は皆さんされていることかもしれませんが具体例を説明しやすくするためにこのフェーズから説明していきます。
GoogleDriveから、またはGoogleフォームから直接新規のフォームを作成します。
質問項目は簡単化のため以下のものとします。カッコ内はフォームの形式を表しています。

  • 氏名 (記述)
  • メールアドレス (記述)
  • 今日の朝ご飯を食べたか (ラジオボタン)

イメージとしてはこんな感じです。

GASの新規プロジェクトを作成する

GASのコードを書いていくためのプロジェクトを作成していきます。
まずフォームから新規のスプレッドシートを作成します。
「回答」のことろにあるスプレッドシートのマークをクリックします。

すると「新規でスプレッドシートを作成しますか?」みたいなのが出てくると思うのでそこからスプレッドシートを新規作成します。
そうするとスプレッドシートが開きます。

次に
ツール→スクリプトエディタ
を選択します。
すると次のような画面に遷移します。

「無題のプロジェクト」となっているのを好きな名前に変更してこのフェーズは完了です。
今回は名前を「テスト」にしておきます。

GASで自動返信システムを作る

MailApp.sendEmailについて

今回はGASの

MailApp.sendEmail

というクラスを使っていきたいと思います。
イメージとしては下記の感じで使います。

MailApp.sendEmail(to,
                  replyTo,
                  subject,
                  body);

引数は4つで以下のとおりです。

引数名 説明
to String メールを送信する先
replyTo String 返信用アドレス
subject String 件名
body String 本文

スプレッドシートからの情報を取得する

次にスプレッドシートからのフォームの回答情報を取得したいと思います。
コードはこんな感じになります。

function onFormSubmit(e) {
  // フォームの回答を取得
  const name = e.namedValues['氏名'][0];
  const email = e.namedValues['メールアドレス'][0];
  const breakfast = e.namedValues['今日朝ごはんを食べたか'][0];
  }

送信先・件名・本文を定義してコードを完成させる

上で触れた2つのコードをくっつけて新しく送信先・件名・本文を定義するだけです。
コードは次のようになります。

function onFormSubmit(e) {
  // フォームの回答を取得
  const name = e.namedValues['氏名'][0];
  const email = e.namedValues['メールアドレス'][0];
  const breakfast = e.namedValues['今日朝ごはんを食べたか'][0];
  
  // 自動返信メール件名
  const subject = 'ここに件名を入れる';
      
  // 自動返信メール本文
  const body = name + '様\n' +
    '\n' +
    '下記の内容で申し込みを受付いたしました。\n' +
    '\n' +
    '【氏名】\n' +
    name + '\n' + 
    '\n' +
    '【メールアドレス】\n' +
    email + '\n' +  
    '\n' +
    '【朝ごはんを食べたか】\n' +
    breakfast + '\n' +  
    '\n';
  
  // メール送信
  MailApp.sendEmail({
    to: email,  //送信先
    subject: subject, //件名
    body: body //本文
  });
}

「とりあえず理屈はいいからメール業務を自動化したい!」という方はこのコードをコピペしてカスタマイズしていただくだけでもだいぶ楽になるかと思います!

GASのトリガーの設定をする

コードを書くのはここまでです。
次にGASのトリガーを設定します。
これを設定しないとフォームに回答してもらってもせっかく書いたコードが動いてくれません。
まずプロジェクトの左側に「トリガー」というのがあるのでそこに遷移します。

次に右下にある「トリガーを追加」をクリックすると以下のような画面になります。

ここでは

次に保存を押してアカウントの連携を完了すると次のような画面が出てきます。

なんか警告されている感出ててビビりますが大丈夫です。
左下にある「詳細」をクリックすると以下のような画面になります。

次に「テスト(安全ではないページ)に移動」をクリックします。
すると「(プロジェクト名)が Google アカウントへのアクセスをリクエストしています」
というのが出てくるので「許可」します。
これで自動返信システムをが完成しました!
お疲れさまです!

試しにフォームに回答してみる


こんな感じでフォームに回答すると

こんな感じで自動で返信が来ました!

最後に

今回はGASを使ってメール業務を自動化していきました。
GASでは他にもいろんなことをGoogleの製品と連携させて自動化することができます。
退屈なことはGASにやらせよう!

GitHubで編集を提案

Discussion