以下のスクリプトを実行すると何故か、最後に一致する人にだけ2個メールを送ってしまいます。
何かこの書き方に間違えがあるのでしょうか。
自分ではどこに問題があるかわかりません。
宜しくお願いします。
GAS
1function sendAllMail() { 2 // このスクリプトの実行日の取得 3 var today = Utilities.formatDate(new Date(), 'Asia/Tokyo','yyyy/MM/dd');; // 今日の日付をyyyy/mm/dd形式に直して取得 4 5 // spreadSheetオブジェクトを取得 6 let spreadSheet = SpreadsheetApp.getActive() 7 8 // 件名と本文が書かれたsheetオブジェクトを取得 9 let templateSheet = spreadSheet.getSheetByName("データ項目") 10 11 // 件名はD2セルに入ってるのでその値を取得 12 let title = templateSheet.getRange("D2").getValue() 13 14 // 送信対象のメールアドレス一覧が記載されてるシートを取得 15 let sheet = spreadSheet.getSheetByName("回答") 16 17 var col = "A"; 18 var last_row = sheet.getLastRow(); 19 var range = sheet.getRange(col + "1:" + col + last_row); 20 var value = range.getValues(); 21 var array = []; 22 var isDate = []; 23 24 for(var i = 0; i < value.length; i++){ 25 array.push(value[i][0]); 26 isDate.push(Object.prototype.toString.call(value[i][0])) 27 if (value[i] !== undefined && isDate[i] === "[object Date]"){ 28 array[i] = Utilities.formatDate(array[i], 'Asia/Tokyo','yyyy/MM/dd'); 29 if (array[i] == today){ 30 let targets = sheet.getRange(i+1, 3, i, 5).getValues() 31 32 // 本文の「%企業名%」を企業名に置き換えてメールを送信 33 try { 34 for (target of targets) { 35 var fileurls = target[4].split('/'); 36 var fileid = fileurls[5]; 37 var file = DriveApp.getFileById(fileid);//添付ファイル取得 38 // 本文はB2セルに入ってるのでその値を取得 39 let body = templateSheet.getRange("E2").getValue() 40 body = body.replace(/%名前%/, target[0]) 41 42 // スプレッドシートのメアド、件名・本文でメールを送信 43 GmailApp.sendEmail(target[1], title, body, {attachments: [file]}); 44 } 45 } 46 catch (e) { 47 continue; 48 } 49 } 50 } 51 } 52 } 53
回答シート以下
|タイムスタンプ|受付番号|名前|メールアドレス|性別|年代||
|:--:|:--:|:--:|:--:|:--:|:--:|
|2020/10/18 19:37:14|1|a|aaa@yahoo.co.jp|男|5059歳|https://drive.google.com/file/d/xxxx/view?usp=drivesdk|39歳| https://drive.google.com/file/d/xxx/view?usp=drivesdk|
|||||||
|2020/10/15 10:09:00|2|c|bbb@yahoo.co.jp|女|30
|||||||
|||||||
|||||||
|2020/10/19 20:34:44|3|d|ccc@gmail.com|男|4049歳|https://drive.google.com/file/d/xxx/view?usp=drivesdk|59歳| https://drive.google.com/file/d/xxx/view?usp=drivesdk|
|2020/10/17 10:09:07|7|e|ddd@yahoo.co.jp|男|50
|2020/10/19 20:04:04|46|f|eee@gmail.com|男|40~49歳| https://drive.google.com/file/d/xxx/view?usp=drivesdk|
回答1件
あなたの回答
tips
プレビュー