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

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

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

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

Q&A

解決済

1回答

3258閲覧

至急!!GASでForm送信時、scriptでメールが送信されない

yoyoy

総合スコア14

Google Apps Script

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

0グッド

1クリップ

投稿2020/07/13 04:39

編集2020/07/13 05:54

本日、急にForm送信時にメールを送信するscriptが動かなくなりました。
エラーも出ていません。
9:00までは動いており、設定変更もしていません。

現在、実際に動いている流れは以下となります。
【申請について】
Formから申請をした人が、利用要件、利用したい時間と日時とを申請します。
利用要件に応じて、担当部署にメールが送信されるように割り振るようにしています。
(.match(/●●/)で●●が条件に合っていたら、その担当部署にメールが送信される。)

【流れ】
①Formから申請 → ②Form送信 → ③申請者に受付完了メール、申請時間外のため、受付できないメール
、担当部署に申請があったメールが送信 →④スプレッドシートで承認可否 →⑤申請者に承認可否の連絡

①と②と④と⑤は動いていますが、③が動いていません。
トリガーを再設定しましたが、現象は変わりません。

メールアドレスのfromのメールアドレスは、.match(/●●/)にあった担当部署のメールアドレス
が入ります。
そのため、以下の同じようなscriptが7つあります。

このsctiptを作成しているGoogleカウントに、Gmailで送信者として送信するのメールアドレスを登録しています。

Form,スプレッドシート、scriptを複写した、テスト環境では、問題なく動いています。

scriptは以下となります。

function Utest(e) { //有効なGooglesプレッドシートを開く var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); //新規予約された行番号を取得 var num_row = sheet.getLastRow(); //メールアドレスの取得 var nmail = sheet.getRange(num_row,2).getValue(); //名前の取得 var name = sheet.getRange(num_row,3).getValue(); //理由を取得 var riyuu = sheet.getRange(num_row, 4).getValue(); //理由の内容を取得 var naiyou = sheet.getRange(num_row, 5).getValue(); //予約を記載するカレンダーを取得(テスト) var cals = CalendarApp.getCalendarById("カレンダーID"); //★現在日時を取得 var day = Moment.moment(); //予約の開始時間を取得 var stime = new Date(sheet.getRange(num_row, 7).getValue()); var stime2 = sheet.getRange(num_row, 7).getDisplayValues(); //予約の終了時間を取得 var etime = new Date(sheet.getRange(num_row, 8).getValue()); var etime2 = sheet.getRange(num_row, 8).getDisplayValues(); //予約日を取得 var ndate = new Date(sheet.getRange(num_row, 6).getValue()); var ndate2 = sheet.getRange(num_row, 6).getDisplayValues(); var ndates= new Date(ndate.getFullYear(),ndate.getMonth(),ndate.getDate(),stime.getHours(),stime.getMinutes(),0); var ndatee= new Date(ndate.getFullYear(),ndate.getMonth(),ndate.getDate(),etime.getHours(),etime.getMinutes(),0); // 時間内かつテストか ★追記 if(cals.getEvents(ndates, ndatee) == 0 && riyuu.match(/テスト/) && Moment.moment(ndates).isAfter(day)){ var subject = "申請仮予約"; var body =''; body += 'テストです。\n'; body += '\n'; body += '申請の仮予約を受付ました。\n'; body += '\n'; body += '【申請内容】\n'; body += ' ・メールアドレス: ' + nmail + '\n'; body += ' ・名前 : ' + name + '\n'; body += ' ・理由 : ' + riyuu + '\n'; body += ' ・理由の内容 : ' + naiyou + '\n'; body += ' ・日 : ' + ndate2 + '\n'; body += ' ・希望時間 : ' + stime2 + '\n'; body += ' ・予定時間 : ' + etime2 + '\n'; body += '\n'; body += '予約確定次第、再度このメールアドレスにご連絡致します。\n'; body += '\n'; body += '\n'; body = name +" 様\n\n"+body; GmailApp.sendEmail(nmail,subject,body, { from: 'メールアドレス', name: ' テスト', bcc: 'メールアドレス, }); var subject2 = "承認をお願いします。"; var body2 =''; body2 += '申請がありました。\n'; body2 += '承認をお願いします。\n'; body2 += '\n'; body2 += '【申請内容】\n'; body2 += ' ・メールアドレス: ' + nmail + '\n'; body2 += ' ・名前 : ' + name + '\n'; body2 += ' ・理由 : ' + riyuu + '\n'; body2 += ' ・理由の内容 : ' + naiyou + '\n'; body2 += ' ・日 : ' + ndate2 + '\n'; body2 += ' ・希望時間 : ' + stime2 + '\n'; body2 += ' ・予定時間 : ' + etime2 + '\n'; body2 += '\n'; body2 += '確認後、「承認者名」「承認可否」を入力して下さい。\n'; body2 += '却下の場合は、可否理由欄に却下理由を記入して下さい。\n'; body2 += '\n'; body2 += '\n';   GmailApp.sendEmail('メールアドレス',subject2,body2, { from:'メールアドレス', name:'テスト', bcc: 'メールアドレス', } ); } if(cals.getEvents(ndates, ndatee) != 0 && riyuu.match(/テスト/) || Moment.moment(ndates).isBefore(day) && riyuu.match(/テスト/)){ sheet.deleteRow(num_row); var body3 =''; body3 += '\n'; body3 += '外です。\n'; body3 += '\n'; body3 += '【申請内容】\n'; body3 += ' ・メールアドレス: ' + nmail + '\n'; body3 += ' ・名前 : ' + name + '\n'; body3 += ' ・理由 : ' + riyuu + '\n'; body3 += ' ・理由の内容 : ' + naiyou + '\n'; body3 += ' ・日 : ' + ndate2 + '\n'; body3 += ' ・希望時間 : ' + stime2 + '\n'; body3 += ' ・予定時間 : ' + etime2 + '\n'; body3 += '\n'; body3 = name +" 様\n\n"+body3; GmailApp.sendEmail(nmail,"時間外で申請されています。",body3, { from:'メールアドレス', name:'入構申請', bcc: 'メールアドレス',}); } } コード

何か同じような状況になった方がいらっしゃいましたら、回答をお願い致します。

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

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

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

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

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

KoichiSugiyama

2020/07/13 05:24

この情報だけだと回答できる人はいないんじゃないでしょうか。どの程度切り分けができているかなど、現在の状態についてわかっている事をもう少し詳細に記載していただいた方が良いと思います。
yoyoy

2020/07/13 05:37

ご回答ありがとうございます。 詳細に追記いたします。
KoichiSugiyama

2020/07/13 06:54

エラーが出ていないとのことですが、スクリプトでメールを送信した形跡がないということでしょうか。手動でスクリプトを実行してもメールが送れないのでしょうか。
yoyoy

2020/07/13 08:45

送信した形跡がありません。 手動でscriptを実行してもメールは送信されません。 しかし、Formとscriptをコピーし、、スプレッドシートは回答先として新しくスプレッドシートを作成したところ、メールは送信されました。 原因が不明の場合、作成しなおしてみようと思っています。
yoyoy

2020/07/13 09:44

解決しました。 スプレッドシートの一番下の行に、文字が入っておりました。 フィルターをかけており、その行がフィルターに引っかかっていて、気が付くまでに時間がかかってしまいました。 コメントを頂きましてありがとうございました。 次回からは、きちんと詳細に質問を投稿するよう注意いたします。
guest

回答1

0

自己解決

スプレッドシートの一番下の行に、文字が入っておりました。
フィルターをかけており、その行がフィルターに引っかかっていて、気が付くまでに時間がかかってしまいました。
コメントを頂きましてありがとうございました。
次回からは、きちんと詳細に質問を投稿するよう注意いたします。

投稿2020/07/13 09:44

yoyoy

総合スコア14

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問