2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Googleフォームの内容をメールで自動送信

Last updated at Posted at 2021-11-19

この記事を読んで欲しい方

・Googleフォームで予約受付をしたが、一件ずつ手作業でメールを返信している。
・メール返信を自動化したい。
・有料プラグインは使いたくない。
・でもプログラミングとか分からない。

何ができるのか

タイトルの通り、Googleフォームで入れた内容を自動でメール送信してくれます。
商品予約ページをGoogleフォームで作っておいて、お客様へのメール送信を自動で行うというのが主な利用シーンです。

例えばGoogleフォームで ↓ のように予約を受け付けます。

ss519.JPG

すると、送信ボタンを押した直後に予約してくれた人へ予約内容の確認メールが自動送信されます。

ss517a.JPG

なお、今回の方法ではGoogle Apps Script (GAS) を扱いますが、ほとんどをコピペで済ませるため自分でプログラミングすることはありません。

準備

あらかじめGoogleフォームと入力内容がリスト化されるスプレッドシートを用意しておきます。
※作成方法は割愛します。

ss520.JPG

スプレッドシートを開きます。

ss521.JPG

初期状態なら「1行目に入力項目」「2行目以降は空白」となっているはずです。

プログラムをコピペする

プログラム自体は用意されたものを用いるため、自分でプログラミングすることはありません。

画面上部のメニューから「拡張機能」→「Apps Script」を選択します。

ss501.JPG

するとApps Scriptのエディター画面が開きます。
初期状態だと ↓ のようになっているはずです。

ss502.JPG

まず、元々あるプログラム(1行目~3行目)を消します。

次に ↓ に示すプログラムをコピペします。
※長いですが理解できなくてもOKです。

クリックするとプログラムが表示されます。
function onFormSubmit(e) {
  // 送信者の情報
  var from_mail = 'yourteam@gmail.com';
  var from_name = '[サークル名]';

  // フォームの回答
  var columns = {
    time:     'タイムスタンプ',
    email:    'メールアドレス',
    goods1:   '作品1',
    goods2:   '作品2',
    goods3:   '作品3',
    date:     'お受け取り日',
    nickname: 'お名前(ニックネーム可)',
    twitter:  'Twitterアカウント',
    remark:   'ご連絡事項等あればご記入ください',
  }
  var values = {};
  for (key in columns) {
    values[key] = e.namedValues[columns[key]][0];
  }

  // メールの件名
  var subject = '' + from_name + '】ご予約ありがとうございました';

  // メール本文(前文)
  var body_before = [
    values['nickname'] + '',
    '',
    '',
    'この度は' + from_name + 'の出展作品をご予約頂き誠にありがとうございました。',
    '',
    '下記の通り承りましたので内容のご確認をお願い致します。',
    '',
    '--------------------------------------------------',
    'ご予約内容',
    '--------------------------------------------------',
  ];

  // メール本文(後文)
  var body_after = [
    '',
    '--------------------------------------------------',
    '',
    '内容に相違などございましたら ' + from_mail + ' までご連絡ください。',
    '',
    'また、当日' + from_name + 'のブースへお越しの際は「予約です」とお申し出ください。',
    '',
    'ゲームマーケット会場でお会いできることを楽しみにしております。',
  ];

  // メール送信
  var body_contents = [];
  for (key in columns) {
    if ( values[key] == '' ) continue;
    body_contents.push('');
    body_contents.push('' + columns[key]);
    body_contents.push(values[key]);
  }
  var body_all = body_before.join('\n') + body_contents.join('\n') + body_after.join('\n');
  GmailApp.sendEmail(values['email'], subject, body_all, {from: from_mail, name: from_name});
}

コピペ後は ↓ のようになるはずです。
ss522.JPG

ss524.JPG

コピペ作業はこれで終わりです。

送信者と作品の情報を設定する

送信者(販売サークル側)のメールアドレスと販売サークル名をそれぞれ書き換えます。
ss526.JPG
↓ ↓ ↓
ss532.JPG
※実際に使用するものを指定してください。

次に、予約対象の作品名を実際のものに書き換えます。
ss528.JPG
↓ ↓ ↓
ss529.JPG
※作品名はスプレッドシートに記載されているものと同じものにしてください。
ss533.JPG
プログラムの修正はこれで終わりです。
画面上部の保存ボタンを押して修正内容を保存しましょう。
ss516.JPG

プログラムの起動設定をする

Googleフォームの送信ボタンを押したタイミングでプログラムが実行される(=メールが送信される)ように設定します。
基本的にはマウスクリック作業のみで完了します。

まず、エディター画面左側の「時計」アイコンにマウスを合わせましょう。

ss505.JPG

するとメニューが現れるので「トリガー」を選択します。

ss506.JPG

すると「トリガー設定画面」が表示されます。

ss507.JPG

初期状態では何も設定が無いので、画面右下「トリガーを追加」ボタンを押します。

すると「トリガーを追加」の画面が表示されるので、それぞれの項目を ↓ のように指定して保存ボタンを押します。

ss508.JPG

プログラムにアクセス許可を与える

ここから少々、アクセス許可のための確認画面が続きます。

というのも、「今コピペしたプログラムが予約者リスト(スプレッドシート)にアクセスすること」を許可してあげる必要があるのです。
許可してあげないとプログラムは何もできません。
これは安全性のための仕組みで、プログラムが許可なく勝手なことをしないようにするためのものです。

といっても、手続きはマウスクリックするだけなので落ち着いて進めましょう。

まず、アカウント選択の画面が表示されるので(大抵は今作業しているアカウントを)選択しましょう。

ss534.JPG

↓ のような少々怖い画面が出ますが、左下の「詳細」リンクを押します。

ss535.JPG

さらに情報が出ますが、画面下部の「安全ではないページに移動」のリンクを選択します。

ss536.JPG

ここで改めて「アクセスのリクエストを許可する」画面が表示されます。
画面下部の「許可」ボタンを押します。

ss537.JPG

少し待つと「トリガー設定画面」に戻ってきます。
トリガーが追加されているはずです。

ss514.JPG

プログラムの起動設定はこれで終了です。

これで全ての設定は完了しました。

送信テスト

Googleフォームから情報を入力して送信ボタンを押します。

ss538.JPG

送信後、スプレッドシートに送信内容が記載されます。

ss540.JPG

メールボックスを確認すると入力した内容が送られているはずです。

ss517a.JPG

無事にメールが届きましたでしょうか?
これでもうメール送信の作業から解放されるでしょう!

作品の数を変更したい

これまで説明した内容では作品の数が3種類でした。
これを増やしたり減らしたりする方法を説明します。

増やす方法

予めGoogleフォームの側を修正して、作品の数を増やしておきましょう。
今回は例として「お得パック」を増やしたとします。
ss545.JPG
Googleフォームの側で作品の数を増やすと、スプレッドシートの側も自動的に更新されます。
ss547.JPG
※Googleフォーム上の場所に関係なく、スプレッドシートの一番後ろに追加されます。

次に、プログラム内の作品の設定に「お得パック」を追加します。
ss544.JPG
※4種類目なので「goods4:」となっています。さらに追加するなら「goods5:」「goods6:」と増やしていきます。

プログラムの修正はこれで終わりです。
保存ボタンを押しましょう。
ss516.JPG

送信テスト

新しく増やした作品を選んでテストしてみましょう。

Googleフォームで増やした作品を選んで送信します。
ss557.JPG

スプレッドシートに追加されているはずです。

ss555.JPG

受け取ったメールにも記載されているはずです。

ss558.JPG

※選んでいない作品はメールに記載されないようになっています。

減らす方法

作品の数を減らすのは、増やすよりも簡単です。
例として「トラペーツ新版」以外を削除します。

ss559.JPG

Googleフォームの側から削除してもスプレッドシートからは削除されません。
そのため過去に入力された情報はそのまま残ります。

ss565.JPG

そしてプログラムの修正です。
「トラペーツ新版」以外の作品情報を削除します。
ss566.JPG
修正を終えたら保存するのを忘れずに。
ss516.JPG

送信テスト

それではテストしてみましょう。
作品を一つだけ選んで送信ボタンを押します。
ss562.JPG

スプレッドシートに情報が追加されているはずです。

ss567.JPG

メールも問題なく届いているはずです。

ss568.JPG

最後に

プログラムの知識が無くても扱えるよう、プログラムの修正作業を抑えた内容になっています。
とはいえ、今回の内容でも無理そうだと感じる方もいらっしゃると思います。
疑問点などあればコメント欄などへお気軽にお問い合わせください。

なお、前文や後文(予約内容の前後)の修正についてはまた改めて紹介したいと思います。

2
5
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
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?