概要
こんにちは。5期生、江坂キャンパス・ナレッジベース制作の横内です。
N高等学校では、Google フォームへのアドオン追加が制限されているため、追加機能で、自動返信を追加することは困難になっています。が、Google フォームの回答記録用に利用できるGoogle スプレッドシートのスプリクトエディタにコマンドを入力することで、自動返信メールを送信することができます。その方法についてご説明してまいります。最後までお付き合いを。
シーン
- 同好会参加受付メールの送信(自分でメッセージをオリジナルにして送信)
- イベント企画・運営の参加受付メール(注意事項などを記入して送信)
- その他、フォーム送信後、オリジナル文章を送信したいとき
設定内容
- Google スプレッドシート - スプリクトエディタ
- Gmail メールフィルタ
注意事項
この設定を行うあたり、以下の点にはご注意ください。
- 設定をどうするのかも自由です。設定も任意です。
- 他人を傷つける恐れがあるものはやめましょう。
- 誰が見ても、大丈夫な文章にしましょう。
Google フォーム&スプレッドシートの設定方法
1. Google フォームを作成し、フォームを作成します。
※ 名前収集の項目は『名前』にしてください!メールアドレスの自動収集もつけてください!
2.“回答”をクリック
3. “スプレッドシート”をクリック
4. 「回答先の選択」ウィンドウで“作成”を選択
※通常であれば、『新しいスプレッドシートを作成』でOK。
5. 別タブでスプレッドシートが開きます。
6. ツール > “スクリプトエディタ” をクリック。
スクリプトエディタでの操作
1. 別タブでスクリプトエディタが開きます。
8. 以下のコードを修正の上、コピペで貼る。
function sendMailGoogleForm() {
Logger.log('sendMailGoogleForm() debug start');
//------------------------------------------------------------
// 設定エリアここから
//------------------------------------------------------------
// 件名、本文、フッター
var subject = "【**】 受付しました。";
var body
= "フォーム送信、ありがとうございます。以下の内容で受付いたしました。\n\n"
+ "------------------------------------------------------------\n";
var footer
= "------------------------------------------------------------\n\n"
+ "\n\nよろしくお願いいたします。\n **チーム";
// 入力カラム名の指定
var NAME_COL_NAME = '名前'; //先程名前のフォーム項目部分
var MAIL_COL_NAME = 'メールアドレス'; //メールアドレス収集の場合は項目名はメールアドレス
// メール送信先
var admin_name ="(任意の表示名|例: **チーム)";//送信メールの名前 ※任意で編集。
var admin = "(Gmailフィルタのアドレス)"; // Gmail フィルタのアドレスに書換
var bcc = "";// bccがいらない場合は、adminを""に書換
var reply = admin;
var to = ""; // To: (入力者のアドレスが自動で入ります)
// 送信先オプション
var options = {};
if ( admin_name ) options.name = admin_name;
if ( bcc ) options.bcc = bcc;
if ( reply ) options.replyTo = admin;
//------------------------------------------------------------
// 設定エリアここまで
//------------------------------------------------------------
try{
// スプレッドシートの操作
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_COL_NAME ) {
body = col_value+" 様\n\n"+body; //名前に様がつく
}
if ( col_name === MAIL_COL_NAME ) {
to = col_value;
}
}
body += footer;
// メール送信
if ( to ) {
/* メールを送信 */
GmailApp.sendEmail(
to, //toアドレス
subject, //表題
body, //本文
{
from: admin, //fromアドレス
name: admin_name //差出人
}
);
}else{
MailApp.sendEmail(admin, "【失敗】Googleフォームにメールアドレスが指定されていません", body);
}
}catch(e){
MailApp.sendEmail(admin, "【失敗】Googleフォームからメール送信中にエラーが発生", e.message);
}
}
次の点を必ず修正してください
・ 「// 件名、本文、フッター」 部分(subject(=先方に見える件名), body(=先方に見える本文) の2箇所) →両方とも必要に応じて編集。ただし、body 部分の 点線に囲まれている"var footer"は絶対に削除しないこと。
・ 「 // メール送信先」 部分(admin_name(=差出人メール送信者名), admin(=差出人メールアドレス) の2箇所)
→ admin(差出人メールアドレス)については、今から作成方法を記述するので、その作成したメールアドレスの利用をしてください。
Google Apps Script の設定に進んでください。
Google Apps Script での操作
1. Google Apps Script で、トリガーを追加します。
2. 以下のようにトリガーを設定します。各項目をクリックすると、プルダウンメニューにて選択が可能です。
次にGmailでの設定へ進んでください。
Gmail の設定方法
1. Gmail にアクセスし、受信トレイを開く。
2.上部の「メールを検索」をクリックし、任意のメールアドレスを作成および入力。その後、▼をクリック。
メールアドレス作成時の注意
-
@より前部分の自分のメールアドレス は必ず入力。
* この部分は自分の好きなものを入力できない。 -
+ を入力して、任意の文字列を入力する。
* 必ず「+」が必要。+の後ろに任意の文字列を。 -
学生の場合、末尾は @nnn.ed.jp を入力。@nnn.ac.jp は利用不可。
* 教員の場合は逆。@nnn.ac.jp を入力。 @nnn.ed.jp は利用不可。
3. To に入力されていることを確認し、“フィルタを作成”をクリック。
4. 何か実行する内容があれば選択。必要なければ“フィルタを作成”をクリック。
試験運用
一度、前述で作成した内容をテストしてみましょう。
成功例
この操作を行うことで、以下のものを作成することができる。
→ 点線で挟んだ部分には、フォームに入力した内容がすべて記載される。
★ メールアドレスは+をつけてカスタマイズしている。
★ 送信者名もカスタマイズしている。
★ 件名もカスタマイズしている。
Google フォームの自動返信だと味気ない場合がある。その場合は、ぜひこの方法を使って、オリジナリティある文面を自動で送信しよう。
【アドオンで追加すれば良いんじゃない?という意見について】
文章の最初を読んでみよう。答えが書いているよ。