質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

2625閲覧

GOOGLEフォーム 自動返信で自動返信メールが2通送信されてしまします。

Fjita

総合スコア13

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

1クリップ

投稿2019/03/01 01:43

前提・実現したいこと

googleフォームを利用しており、スクリプトエディタで自動返信をしています。

発生している問題・エラーメッセージ

問題点
なぜか同じ自動返信メールが2通送信されてしまします。

該当のソースコード

function sendMailFromForm() {
Logger.log('sendMailFromForm() debug start');

//------------------------------------------------------------ // 設定エリアここから //------------------------------------------------------------ // 件名、本文、フッター var subject = "[モーニングスクールお申込受付]"; var body = "お申込ありがとうございます。お申込が確定次第、\n\n"     +"担当者からご連絡いたします。\n\n" + "------------------------------------------------------------\n"; var footer = "------------------------------------------------------------\n\n" + "このアドレスは送信専用のため返信は出来ません。\n\n" +"名古屋スポーツセンター 営業部"; // 入力カラム名の指定 var NAME_COL_NAME = '保護者氏名'; var MAIL_COL_NAME = 'メールアドレス'; var SUBJ_COL_NAME = '曜日の選択'; // メール送信先 var admin = "nscosuskate01@gmail.com"; // 管理者(必須) var cc = ""; // Cc: var bcc = admin; // Bcc: var reply = admin; // Reply-To: var to = ""; // To: (入力者のアドレスが自動で入ります) //------------------------------------------------------------ // 設定エリアここまで //------------------------------------------------------------ try{ // スプレッドシートの操作 var sh = SpreadsheetApp.getActiveSheet(); var rows = sh.getLastRow(); var cols = sh.getLastColumn(); var rg = sh.getDataRange(); Logger.log("rows="+rows+" cols="+cols); // メール件名・本文作成と送信先メールアドレス取得 for (var j = 1; j <= cols; j++ ) { var col_name = rg.getCell(1, j).getValue(); // カラム名 var col_value = rg.getCell(rows, j).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; // 送信先オプション var options = {}; if ( cc ) options.cc = cc; if ( bcc ) options.bcc = bcc; if ( reply ) options.replyTo = reply; // メール送信 if ( to ) { MailApp.sendEmail(to, subject, body, options); }else{ MailApp.sendEmail(admin, "【失敗】Googleフォームにメールアドレスが指定されていません", body); } }catch(e){ MailApp.sendEmail(admin, "【失敗】Googleフォームからメール送信中にエラーが発生", e.message); }

}

◆◆◆◆現在のプロジェクトのトリガー◆◆◆◆
スプレッドシートからフォーム送信時

試したこと

トリガーは1つしか設定していません

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coco_bauer

2019/03/01 01:55

2通送信される同じメールの件名(Subject)は、「[モーニングスクールお申込受付]」、「【失敗】Googleフォームにメールアドレスが指定されていません」、「【失敗】Googleフォームからメール送信中にエラーが発生」のどれですか?
Fjita

2019/03/01 02:02

早速ありがとうございます。 「[モーニングスクールお申込受付]」が2通送信されてしまします。
guest

回答1

0

ベストアンサー

私自身その現象にあたったことがないのですが、こちらの質問・回答・コメントによると、スプレッドシートではなくフォームにスクリプトを書き、そちらのトリガで実行すると複数送信が抑制されるそうです。

投稿2019/03/01 01:49

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

papinianus

2019/03/01 01:51

https://teratail.com/questions/176187 こちらの質問も、送信先はラインだが同じくトリガが複数発動するとの質問。直近試していないが、googleさんの挙動がおかしくなった?もしくはシート側のonformsubmitは必ず1回と保証してない??
kamefumi

2019/03/05 10:36 編集

すみません、こちらの手違いで、コメントを入れてしまいました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問