ここ最近、「静的 HTML サイト + Google フォームによるメールフォーム」という構築案件が続いたので Google フォームに自動返信機能を付ける GAS(Google Apps Script)を作りました。
実際のところ「Googleフォーム 自動返信」で検索するといろんな作例が出てくるのですが、メールの題名や本文などのカスタマイズ性でしっくり来るものがなく、極めて「オレオレ要求仕様」なスクリプト sendmail.js を新たに起こしてみた次第です。
スクリプトは GitHub で公開しています。ライセンスはMITライセンスです。
https://github.com/tecking/sendmail.js
フォームからの投稿内容を集計するスプレッドシートの「スクリプトエディタ」にてスクリプトを記述したり、「フォーム送信時」のイベントをトリガーに設定したりするのは他の作例と同様です。スクリプトの設定方法については「Googleフォーム 自動返信」で検索するなどして参照してください。
特長
- メールの題名・差出人名・差出人メールアドレスなどを任意の値に設定可
- フォーム投稿者への自動返信メール、およびフォーム管理人への通知メールの本文テンプレートをスクリプト本体から分離して別シートに格納
ざっくりと使い方説明
GitHub リポジトリにある sendmail.js をスクリプトエディタにコピペし、下記の項目を設定します。
- FORM_SHEET
フォームの集計を記録するシート名 - FORM_SHEET_COL_LABEL
メール本文に値を挿入するフォームフィールド(=スプレッドシート上のカラム)名 - REPLY_MAIL_COL_LABEL
返信先メールアドレスが記載されたフォームフィールド(=スプレッドシート上のカラム)名 - ADMIN_MAIL_BODY_SHEET
フォーム管理者あてメールのテンプレートを記述したシート名 - REPLY_MAIL_BODY_SHEET
自動返信メールのテンプレートを記述したシート名 - MAIL_BODY_CELL
フォーム管理者あてメール・自動返信メールのテンプレートを記述したセル(通常は A1) - ADMIN_MAIL_SUBJECT
フォーム管理者あてメールの題名 - ADMIN_MAIL_SENDER
フォーム管理者あてメールの差出人名 - ADMIN_MAIL_FROM
管理者あてメールの差出人メールアドレス (通常はフォームを作成したアカウントの Gmail アドレス) - ADMIN_MAIL_TO
管理者あてメールのあて先メールアドレス - ADMIN_MAIL_CC
管理者あてメールのCcメールアドレス(設定しなくても可) - ADMIN_MAIL_BCC
管理者あてメールのBccメールアドレス(設定しなくても可) - REPLY_MAIL_SUBJECT
自動返信メールの題名 - REPLY_MAIL_SENDER
自動返信メールの差出人名 - REPLY_MAIL_FROM
自動返信メールの差出人メールアドレス(通常はフォームを作成したアカウントのGmailアドレス)
リポジトリにある sendmail_template_sample.ods (OpenDocument 形式のスプレッドシート)を参考に、下記のメールテンプレートをそれぞれ別シートの A1 セルに記述。{{ }} で囲まれた箇所にメールの投稿内容が挿入されます。
- フォーム投稿者への自動返信メール
- フォーム管理人への通知メール
初期設定にあたっての留意点
ADMIN_MAIL_FROM と REPLY_MAIL_FROM を Gmail アドレス以外の値 (独自ドメインのメールアドレスなど) とする場合、あらかじめ Gmail の [設定] – [アカウントとインポート] にて当該アドレスの追加が必要です。
詳しくは Gmail のヘルプ「別のアドレスやエイリアスからメールを送信する」を参照してください。
例外処理を盛り込むなどメール送信不可だったときの対策も練ったつもりですが、不具合を洗い出しきれてないと思うので、お気づきの点があればプルリクエストなどでフィードバックいただけるとうれしいです。
コメントを残す