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

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

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

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

Google Apps Script

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

受付中

スプレッドシートからGASにてメールを送信時、1つのメールに宛先を複数入れたい。

Nasu1225
Nasu1225

総合スコア3

Gmail

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

Google Apps Script

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

1回答

0評価

0クリップ

182閲覧

投稿2022/04/30 10:59

前提・実現したいこと

スプレッドシートでTODOリストを作成し、
未実施者にリマインドメールを送るようなGASを作っています。

送信対象者が多数なことを想定し、
1つのメールに宛先を複数入れれるよう設定をしたいのですが、
なかなかうまくいきません。

縦にアドレスを、横にTODOリストと締め切りを記載しています。

二次元配列を行い、pushにて追加をすればうまくいくかと思いきや、
一つずつ宛先が追加されていき、理想としていたものが出来ませんでした。

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

イメージ説明

該当のソースコード

function timeline() { var mySpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var mySheet = mySpreadsheet.getSheetByName("シート8"); //対象スプレッドシートのシート名を記載 var myEndColumn = mySheet.getLastColumn(); //最終列取得 var myEndRow = mySheet.getLastRow(); //最終行取得 var myRange = mySheet.getDataRange(); //sheetの範囲指定(全部) var myValues = myRange.getValues(); //指定した範囲の値を格納 var today = new Date(); today.setDate(today.getDate()+5); var date = Utilities.formatDate(today, "JST","MM/dd"); //5日後計算 var limitday = []; var address = []; for (var i = 3; i <myEndColumn; i++){ var limit = myValues[0][i]; var limit = Utilities.formatDate(limit, "JST","MM/dd"); //Logger.log(limit) limitday.push(limit); if(date == limit){ //月曜日~金曜日のみ実行   for (var y = 5;y<myEndRow;y++){ //縦にループ  var myWorking = ""; //未完了案件格納用  if(myValues[y][2] != ""){ //E-mailが空白以外の場合     for (var x = 3;x<myEndColumn;x++){ //yokoにループ if(myValues[y][x] == ""){ //未実施の場合 //未完了案件情報を格納 myWorking = myWorking + "・" + myValues[3][x] + "\n" + "締切期限:" + Utilities.formatDate(myValues[0][x],"JST","yyyy/MM/dd") +"\n" } } if(myWorking != ""){ //未完了案件情報が空白以外の場合   //メールオプション設定 var option = new Object; option.name = "5課リマインドBOT"; //送信者名          //宛先セット-------------------------------------------------- myMailTo1 = myValues[y][2];  address.push(myMailTo1); Logger.log(address); //件名セット-------------------------------------------------- mySubject1 = "TODO試作【timeline】対応状況_" + Utilities.formatDate(today,"JST","yyyy/MM/dd");  //本文セット-------------------------------------------------- myBody1 = "5課の皆様\n\n" +   "お疲れ様です。\n" + "5課リマインドBOTです。\n\n" +  "表題の件ですが、\n"+ "実施管理リストにて、以下の締め切りが近づいております。\n"+ "お忙しい中大変恐縮ですが、\n"+ "各自実施の上、実施管理リスト並びに重要周知事項のご確認をお願いいたします。\n\n"+ myWorking + "\n" + "5課リマインドBOT" //------------------------------------------------------------ GmailApp.sendEmail(address,mySubject1,myBody1,option) //メール送信 } } } } } }

1つのメールに対して複数の宛先を入れるやりかたがなかなか見つからず質問させていただきました。

どうぞよろしくお願いいたします。

良い質問の評価を上げる

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

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

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

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

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

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

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

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

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

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

Gmail

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

Google Apps Script

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