Googleフォームの標準機能では行えない、グループアドレス宛など指定のメールアドレスに送る方法を紹介します。
送信エラー「Exception: フォームのデータを取得できませんでした。しばらくしてからもう一度お試しください。」が発生してしまった時の対処法としてリトライする仕組みも紹介しています。
スクリプト Google Apps Script(以下、GAS)を用いた設定方法ですがコピペでできるように後半で説明しています。
簡単にできるように説明しますのでご安心ください
ふぅたこです。X(Twitter)もやってます。お問い合わせはこちらです
今回の記事の流れ
- 自分にメールを送る方法の説明
- グループアドレス宛など指定のメールアドレスに送る方法の説明
自分宛にメールを送る設定方法
自分だけに届けばいいよという人向け。
ノンプログラミングで設定できるので設定方法を紹介します。
1. Googleフォーム上からメール通知を設定する
- 作成したGoogleフォームの管理画面にある「回答」ページを開く。
- 右上にある点が縦に並んだ「・・・」をクリック。
- 上部にある「新しい回答についてのメール通知を受け取る」をクリック。
- 左側にチェックがつけばOKです。
これでメール通知が有効になり、フォームの入力が完了すると、自分のGoogleアカウントにメール通知が届きます。
2. 動作時通知の例
「概要を表示」をクリックすると、管理画面の回答ページに移動します。
通知を指定したメールアドレスに送る ①前準備
自分以外、グループアドレスなど指定したいという人向け。
プログラミングが必要なので設定方法を説明します。コピーと貼り付けで設定可能です!
1. スクリプトエディタを開く
- 作成したGoogleフォームの管理画面の、右上の点が縦に並んだ「・・・」 をクリック。
- 「<>スクリプト エディタ」を選択すると、コードが入力できる画面に移動します。
2. スクリプトエディタにコードを書く準備
- 元々書いてあるコードは不要ですので、すべて消去してください。
3. スクリプトコードを書く(ほぼコピー&ペースト)
- 以下のスクリプトをコピーします。
2023年6月15日更新
リトライ回数が3回だとエラーが出るので6回に増やしました(4行目部分)
function sendform(e){
// エラーが起きた時にはリトライ
var maxRetries = 6;
var items;
for (var retry = 0; retry < maxRetries; retry++) {
try {
items = e.response.getItemResponses();
break;
} catch (error) {
if (retry === maxRetries - 1) {
throw error;
}
Utilities.sleep(1000);
}
}
var msg = '';
// メール送信先 []は利用環境に合わせて置き換えましょう
// BCCが不要ならbcc: '[BCCメールアドレス]',を消しましょう
var admin = '[送信先メールアドレス]';
var options = {from: '[送信元メールアドレス]', bcc: '[BCCメールアドレス]', name: '[送信者名]'};
// 件名、フッター 利用環境に合わせて置き換えましょう
var subject = "[件名]";
var footer
= "------------------------------------------------------------\n\n"
+ "【フッター】\n"
+ "・メール受けた人が見るフッター1\n"
+ "・メール受けた人が見るフッター2\n";
// ボディ処理部分 変更しない
for (var i = 0; i < items.length; i++) {
var item = items[i];
var q = item.getItem().getTitle();
var a = item.getResponse();
msg += q + ': ' + a + '\n\n';
}
// メール送信 変更しない
msg += footer;
GmailApp.sendEmail(admin, subject, msg, options);
}
- スクリプトエディタにペーストしてください。
- 「プロジェクト保存」のアイコンをクリックし、コードの保存をします。
つづいて「通知を指定したメールアドレスに送る ②スクリプト変更」で、各種設定変更を行ってください。
おまけ ヘッダーも入力できるソース
ヘッダーも入力できるソースはこちら
function sendform(e){
// エラーが起きた時にはリトライ
var maxRetries = 6;
var items;
for (var retry = 0; retry < maxRetries; retry++) {
try {
items = e.response.getItemResponses();
break;
} catch (error) {
if (retry === maxRetries - 1) {
throw error;
}
Utilities.sleep(1000);
}
}
var msg = '';
var body = '';
// メール送信先 []は利用環境に合わせて置き換えましょう
// BCCが不要ならbcc: '[BCCメールアドレス]',を消しましょう
var admin = '[送信先メールアドレス]';
var options = {from: '[送信元メールアドレス]', bcc: '[BCCメールアドレス]', name: '[送信者名]'};
// 件名 利用環境に合わせて置き換えましょう
var subject = "[件名]";
// ヘッダー 利用環境に合わせて置き換えましょう
var header
= "【ヘッダー】\n"
+ "・メール受けた人が見るヘッダー1\n"
+ "・メール受けた人が見るヘッダー2\n"
+ "------------------------------------------------------------\n\n";
// フッター 利用環境に合わせて置き換えましょう
var footer
= "------------------------------------------------------------\n\n"
+ "【フッター】\n"
+ "・メール受けた人が見るフッター1\n"
+ "・メール受けた人が見るフッター2\n";
// ボディ処理部分 変更しない
for (var i = 0; i < items.length; i++) {
var item = items[i];
var q = item.getItem().getTitle();
var a = item.getResponse();
body += q + ': ' + a + '\n\n';
}
// メール送信 変更しない
msg = header;
msg += body;
msg += footer;
GmailApp.sendEmail(admin, subject, msg, options);
}
通知を指定したメールアドレスに送る ②スクリプト変更
1. 送信元と送信先と(BCC)を設定
- [送信先メールアドレス]は、送りたい宛先のメールアドレスに置き換えてください。
例)'[送信先メールアドレス]’→‘hogehoge@fuutaco.com‘ - [送信元メールアドレス]は、送信者として表示したいGoogleアカウントのメールアドレス
(※自分のGoogleアカウント。もしくは権限があるGoogleアカウントじゃないとエラーになります。) - [BCCメールアドレス]は、BCCにしたいメールアドレスに置き換えてください。
- [送信者名]は、送信者名として表示したいテキスト。
例)'[送信者名]’→‘WEBおといあわせ‘
23~24行目 変更例
var admin = 'hogehoge@fuutaco.com';
var options = {from: 'otoiawase@fuutaco.com', name: 'WEBおといあわせ'};
変更例のように、BCCが不要であれば削除可能
2. 件名を設定
- [件名]は、メールの件名として表示したいテキスト。
27行目 変更例
var subject = "[件名]WEBおといあわせ";
3. フッターを設定
- footerより下の+で始まっている部分はフッターに表示したいテキスト。
28~32行目 変更例
var footer
= "------------------------------------------------------------\n\n"
"【フッター】\n"
+ "・メール受けた人が見るフッター1\n"
+ "・メール受けた人が見るフッター2\n";
追記1 複数送信先(To:)を指定したい場合
複数のメールアドレスを指定する際には下記の例のようにアドレスとアドレスの間に「,」を加えます。
例の場合、
To:に「hoge1@fuutaco.com」と「hoge2@fuutaco.com」と「hoge3@fuutaco.com」が加えられます。
※メールアドレスとメールアドレスは直接「,」で繋ぎ、スペースや改行は加えないでください
23行目 変更例
var admin = 'hoge1@fuutaco.com,hoge2@fuutaco.com,hoge3@fuutaco.com';
追記2 複数送信先(Cc:、Bcc:)を指定したい場合
BCCとCCのオプションを両方とも加えたときの例です。
このように複数のオプションを指定する際にはオプション毎に「,」で区切って記述します。
例の場合、
Cc:に「hoge1@fuutaco.com」と「hoge2@fuutaco.com」。
Bcc:に「hoge3@fuutaco.com」が加えられます。
※メールアドレスとメールアドレスは直接「,」で繋ぎ、スペースや改行は加えないでください
24行目 変更例
var options = {from: '[送信元メールアドレス]', bcc: 'hoge3@fuutaco.com', cc: 'hoge1@fuutaco.com,hoge2@fuutaco.com'};
通知を指定したメールアドレスに送る ③送信設定
1. トリガーの設定
- 画面左側にある時計マークを選択。
- 右下にある青い「+トリガーを追加」をクリックしてください。
- 実行する関数を選択には「sendform」
- イベントの種類を選択には「フォーム送信時」
- エラー通知設定には「今すぐ通知を受け取る」
- 「保存」をクリック。
2. トリガー保存時にアカウントの確認やエラーが出たら許可
- 上記スクリプトで指定したGoogleアカウントのメールアドレスを選択してください。
- 「許可」をクリック。
3. セキュリティの警告が出る場合があります
2023年10月頃からトリガー保存時に警告が表示されますので、下記対処も併せてお願いします。
4. 動作確認方法と結果
実際にGoogleフォームからフォーム入力をして送信ボタンを押すと、メールが届くようになっているのが確認できます。
「Googleフォームの通知を自分宛にメールを送る設定方法」で解説したパターンとは違い、テキストで内容が届きます。
こちらの方がすぐに内容が確認できるので使いやすいです!
フォームも開きたい場合はfooterにリンクのURL入れておけば開けます。
コメント
コメント一覧 (15件)
初めまして。
大変有用な記事をありがとうございます。
本記事のとおり設定を行っているつもりなのですが、
以下のようなエラーメールが(フォーム作成したGoogleアカウントの)アドレス宛に届き、
送信先設定のアドレスに通知が行われず困っています。原因はどんなところにあるのでしょうか。
お手数ですがご教示いただけますと幸いです。
【以下抜粋】
Your script, 無題のプロジェクト, has recently failed to finish successfully. A summary of the failure(s) is shown below. To configure the triggers for this script, or change your setting for receiving future failure notifications, click here.
<Start> 2024-03-08 16:34:34 Japan Standard Time
<Function>sendform
<Error Message>Exception: Gmail operation not allowed.
<Trigger>formSubmit
<End>2024-03-08 16:34:36 Japan Standard Time
【ここまで】
AbcDefさん
コメントありがとうございます。
通知を指定したメールアドレスに送る ③送信設定
以降にあるアカウントの確認やArrowなどは行われていますでしょうか?
<Error Message>Exception: Gmail operation not allowed.
とエラーが出ていますので承認されてないのかなーと感じました。
(私の方でこのエラーを再現して検証出来ておらず憶測になります)
お返事遅くなりました。
ご教示いただいた箇所含め、一連の設定を行ったのに上手くいきませんでしたので、
再度イチからやり直してみましたら上手くいきました。
私の気づかないところで正確に設定が出来ていなかったのかも知れません。
お騒がせして申し訳ございません。ご返信ありがとうございましたm(_ _)m
原因はわかりませんでしたが、無事動いたようで何よりです!
成功の報告を頂き嬉しいです!
初めまして
ページのスクリプトをありがたくコピペさせていただきました
スクリプト画面の 実行 を押すと以下のエラーが出てしまうのですが、
どのように対応していいかわかりませんご教示いただけないでしょうか。
よろしくお願いします
エラー
TypeError: Cannot read properties of undefined (reading ‘response’)
sendform @ コード.gs:9
いのりさん
コメントありがとうございます!
実行 ではなく、ブログ記事内「通知を指定したメールアドレスに送る ③送信設定」を
行っていただき、フォームから送信を押すとメールが送信される仕組みとなります。
よろしくお願いします。
お礼が遅くなりました
無事に設定できました
ありがとうございます
いのりさん
無事に設定できたようでなによりです!
こんにちは、はじめまして。
質問です。
var admin = ‘hogehoge@fuutaco.com‘;
var options = {from: ‘otoiawase@fuutaco.com‘, name: ‘WEBおといあわせ‘};
フォームが送信された時、複数先に送信されたい時、どこに、どのように、メルアドを、設定しますか?
23.24行、以外でしょうか?
よろしくお願いします。
会社のパソコンからは、セキュリティ縛りのため、個人にて、問い合わせしました。
答えは、この、サイトにて、いただけるとありがたいです。
gakinchoさん
はじめまして。リクエストありがとうございます。
ただいま記事を修正いたしました。
追記1 複数送信先(To:)を指定したい場合
追記2 複数送信先(Cc:、Bcc:)を指定したい場合
を、確認頂ければと思います。
初めまして。
初めてフォームを作成する事になり、大変参考になりました!
一つ教えていただきたいのですが、この記事ではフッターが設定されていますが、ヘッダーの設定も可能なのでしょうか?
よろしければ教えて下さい。
コメントありがとうございます。
ヘッダーの変数を追加すればできるはずです。
明日検証してから記事を更新いたします。
最近使い始めたばからなので、過去のブログから参考になりそうな所を拝見させていただいています。
お手数ですがよろしくお願いします🙇♀️
その他 ヘッダー対応版ソース
こちらに追記いたしました!
ありがとうございます!
理想としていた通知メールが出来ました!!!
こんなに早く教えていただき感謝ですm(_ _)m
他の記事も参考にして勉強させていただきます!