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

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

新規登録して質問してみよう
ただいま回答率
87.20%
Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Google Apps Script

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

解決済

【再】GoogleFORM未提出者に毎朝8時に回答催促メールを自動で送りたい

Kimoty
Kimoty

総合スコア13

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Google Apps Script

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

2回答

-5評価

0クリップ

358閲覧

投稿2022/05/24 14:13

編集2022/05/25 21:48

リンク内容
2022/05/20 21:21
こちらで質問し、一度解決したのですが、どういうわけか、色々いじっているうちにできなくなってしまいました。下書きをすれば500件/日送信可能と教えていただきましたが、100件/日でも対応できそうな気配なので、下書き無しで送信したいと考えています。

Exception: メールを送信できませんでした: 受信者が指定されていません(行 33、ファイル「コード」)

このようなメッセージが出るようになってしまい、メールを送信して完了することができません。

解決方法、もしくはより容易な方法等あれば知りたいです。分かる方教えて下さい。よろしくお願い致します。

仮想名簿
イメージ説明

当日指定
イメージ説明

const nameList = "仮想名簿"; // 名簿が保存されているシートの名前 const nameCol = 3; // 名簿のチェック対象となる列(1~) const answerList = "当日指定"; // 検索対象の回答が保存されているシートの名前 const answerCol = 2; // 回答のチェック対象となる列(1~)/ /**************************************************************************** 指定された名簿の中から、回答していないものを探す */ function searchUnrespondents() { // 名簿データを 2次元配列として読み込む const nameSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(nameList); const nameData = nameSheet.getDataRange().getValues(); // 回答データのチェック対象の列だけを 1次元配列として読み込む const answerSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(answerList); const answerData = answerSheet.getRange(2, answerCol, answerSheet.getLastRow() - 1).getValues().flat(); // 名簿データの行数分、回答の有無をチェックする for (let i = 1; i < nameData.length; i++) { const searchStr = nameData[i][nameCol - 1]; if (!answerData.includes(searchStr) ){ // 回答がない console.log(i + " : " + searchStr + " is " + answerData.includes(searchStr)); sendMail(nameData[i][1], nameData[i][3]) } } } function sendMail(name, mailAddress) { const formUrl = 'https://docs.google.com/forms/d/'; const title = '健康観察フォーム回答のお願い'; const body = `${name} さん\n\n本日の健康観察フォームが未回答です。\n至急、回答をお願いいたします。\n\n` +`:\n${formUrl}`; console.log(body) GmailApp.sendEmail(mailAddress, title, body); }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

YAmaGNZ

2022/05/24 14:30

デバッグすればいいのではないですか? 「受信者が指定されていません」と出ているのであれば受信者がどうなっているか確認したのですか?
Kimoty

2022/05/24 14:42 編集

YAmaGNZ 様 ①デバッグすればいいのではないですか? 何をどうすれば、デバッグになるかが分かりません。 ②「受信者が指定されていません」と出ているのであれば受信者がどうなっているか確認したのですか? 受信者の確認の仕方が分かりません。 申し訳ありません。
k.a_teratail

2022/05/25 01:13

ソースコードは「コードの挿入」を使用して記載してください。
Kimoty

2022/05/25 07:49

大変失礼しました。以後無いようにします。
YAmaGNZ

2022/05/25 08:46

「GAS デバッグ」等で検索するなりご自身で努力されたとは思えません。 今までの質問で貰った回答でも自分で理解しようとせずコピペして動いたからいいやで終わっているとしか思えません。 このようなデバッグ依頼としか思えない質問や丸投げは推奨される質問ではありません。 また、質問は編集できますので「以後無いようにします」ではなくすぐ修正しましょう。
Kimoty

2022/05/25 12:48

YAmaGNZ様 不愉快な思いをさせてしまいすみませんでした。 コードの挿入については、編集しました。 こちらのサイトを初めて発見したときに「15分調べてもわからないことはteratailで質問してみよう」のような宣伝?広告?があり、それを真に受けていくつか質問させていただきました。 全くの素人ですので、YAmaGNZ様の仰る通り、コピペして動いたので、とても助かっていました。 現在のトップページを見ると『私達は、エンジニアが抱える問題の解決を全力でサポートします。 質問・回答によって生まれたコンテンツを、同じ問題を持った人に最適な形で届けます。』とあり、専門家の方々のためのサイトであることを認識しました。 大変失礼しました。ありがとうございました。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Google Apps Script

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