特定のフォルダに写真が存在するとその写真を共有設定にしてそのURLを記述したメールを、スプレッドシートに記述されたメールアドレスに送信する。写真が存在するかどうかのチェックは定期的に実行される。
スクリプトファイルを作成して以下を記述、スプレッドシートを作成して送信したいメールアドレスを複数記述する。トリガーで定期的に実行したい時間間隔を設定。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
function listFilesInFolder3() { //Draft var folder = DriveApp.getFolderById("xxx"); var contents = folder.getFiles(); var tmp = ""; while(contents.hasNext()) { var file = contents.next(); var name = file.getName(); var id = file.getId(); var url = file.getUrl(); if(name.substr(name.length-3,3).toLowerCase() == "jpg"){ file.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW) tmp += url + "\n\n"; moveFileToFolder3(id) } } sendMail(tmp) } function sendMail(body){ var ss = SpreadsheetApp.openById("xxx"); var sheet = ss.getSheetByName("シート1"); var r = 1; while(sheet.getRange(r, 1).getValue() != ""){ try{ if(body != ""){ MailApp.sendEmail(sheet.getRange(r, 1).getValue(), "sub", body); } }catch(e){ MailApp.sendEmail("mail@xxx.com", "自動送信エラー", e); } r++; } } function moveFileToFolder3(fileId) { //Sent var targetFolder = DriveApp.getFolderById("xxx"); var file = DriveApp.getFileById(fileId); var currentFolders = file.getParents(); //複数の親を持てるのgetParentsでイテレータを回す。 while (currentFolders.hasNext()) { var currentFolder = currentFolders.next(); currentFolder.removeFile(file); //親のフォルダのタグが付いているイメージなので全て外してしまう。 } targetFolder.addFile(file); } |