前提・実現したいこと
GAS初心者です。
スプレッドシートに入力されているデータを取得し、
Gmailを送信する、という動きを作っています。
具体的には、以下表のようなスプレッドシートの形で、
チェックボックスにチェックがついた行の要素を、
1つのメールにまとめて送りたいと思っています。
|番号|要素A|確認項目|メールアドレス|チェックボックス
|:--|:--:|--:|
|1|123|ok|○○@|レ||レ|
|2|456|ok|○○@
上記メールアドレスは同一前提です。
チェックボックスがついている行の要素をfilterメソッドで取り出すことろは書けたのですが、
1つのメールアドレスに複数要素をまとめて送信、というところを書くのに躓いています。
また、確認項目がokかつチェックがついていたらその行を送信、という形にしたいので、
現在のコードだと、メールが2つ送られてしまうようになってしまっています。
初歩的なご質問で申し訳ないのですが、ご教示いただけますと幸いです。
該当のソースコード
function myMail() { var sheet = SpreadsheetApp.getActiveSheet(); var lastRow = sheet.getLastRow(); var value = sheet.getDataRange().getValues(); var data = sheet.getRange(2,1,lastRow-1,4).getValues(); var num = data.filter(function(e){return e[3] === true}).map(function(e){return e[0]});//チェックが入った番号 var a = data.filter(function(e){return e[3] === true}).map(function(e){return e[1]});//チェックが入った要素A var address = data.filter(function(e){return e[3] === true}).map(function(e){return e[2]});//チェックが入ったメールアドレス for(var i = 2; i <= lastRow; i++) if(sheet.getRange(i, 3).getValue() == "ok" && sheet.getRange(i, 4).getValue() === true){ var mailCc = 'xxxxx@xxx' var title = 'xxx' var html = ''; html += '番号'+num+' '+a+'<br><br>'; GmailApp.sendEmail(address,title,'本メールはhtmlメールです',{htmlBody:htmlbody}); }}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。