Gmailの受信数出すスクリプト
ひとまずやりたかったことでけた。
ラベルを取得してそのラベルごとに受信件数を出すScriptです。
ラベル数多かったらGASの制限にひっかかるかも
自分がしたかったことはできたけどね。
送受信を集計するツールはあるんですけどね。こいつが入れられないんで
仕方なしに作りました。
http://news.mynavi.jp/news/2012/04/24/012/
ラベルを取得してそのラベルごとに受信件数を出すScriptです。
ラベル数多かったらGASの制限にひっかかるかも
自分がしたかったことはできたけどね。
送受信を集計するツールはあるんですけどね。こいつが入れられないんで
仕方なしに作りました。
http://news.mynavi.jp/news/2012/04/24/012/
// Refer to // http://rcmdnk.github.io/blog/2014/04/09/computer-gmail/ // http://qiita.com/ttyokoyama/items/1aa6977043fb0245342a // https://productforums.google.com/forum/#!topic/gmail-ja/MpPN-IhtrEw // http://qiita.com/atusi/items/2c2ac48083eeac6e153e // http://knt45.hatenablog.com/entry/20120810/1344608033 // // MailCountBatch // function DailyRun(){ //Outputlog('getLabelStart') //EndDay var first = new Date(); var NextDate = Utilities.formatDate(first, 'JST', 'yyyy/MM/dd'); //InsertSheetName //StartDay var last = new Date(first); var next = last.setDate(last.getDate() -1); var SheetName = Utilities.formatDate(new Date(next), 'JST', 'yyyy/MM/dd'); //NextDay // End of the month var end = new Date(first.getFullYear(), first.getMonth() + 1, 0); var endDate = Utilities.formatDate(end, 'JST', 'yyyy/MM/dd'); //ID rewriting is necessary MonthlyTasks var SPREADSHEET_ID = ''; var objSpreadsheet = SpreadsheetApp.openById(SPREADSHEET_ID); //MailLabelCount LabelMailCount(objSpreadsheet,SheetName,SheetName,NextDate); if(SheetName==endDate){ //MonthlyCount var one = new Date(first.getFullYear(), first.getMonth() , 1); var firstDate = Utilities.formatDate(one, 'JST', 'yyyy/MM/dd'); //Logger.log(firstDate); var MonthSheet = Utilities.formatDate(one, 'JST', 'yyyy/MM') LabelMailCount(objSpreadsheet,MonthSheet,firstDate,endDate); var mail_to = "Mailaddr"; var tBody = " 月次作業が必要です。スクリプト内のIDの値を修正してください。\n\n修正箇所はXX行目:var SPREADSHEET_ID = の「=」の後ろです。"; var subject ="【月次作業 スプレッドシート作成:" + endDate + "】"; GmailApp.sendEmail(mail_to, subject, tBody); } } // //MailLabelInsert Cell // function LabelMailCount(SpreadSheet,sheetName,startDay,endDay){ // Outputlog('getLabelStart') //SheetInsert var objSpredSheet = SpreadSheet; var AddedSheet = objSpredSheet.insertSheet(sheetName); var tSheet = SpreadsheetApp.setActiveSheet(AddedSheet) //InsertSheetActive→TargetSheet //Make Header var row = 1; var Title1 = 'ラベル名'; var Title2 = '件数'; tSheet.getRange(row,1).setValue(Title1); tSheet.getRange(row,2).setValue(Title2); row++; // logs all of the your labels var START = 0; var MAX = 500; var sumCount = 0; var labels = GmailApp.getUserLabels(); var lCounter = labels.length+1; for (var i = 0; i < lCounter; i++) { if(i == labels.length){ var searchword = ''; }else{ var searchword = labels[i].getName(); } var search = 'after:' + startDay + 'before:' + endDay + ' + label:' + searchword; //Logger.log(search); var thds = GmailApp.search(search,START,MAX); //MailSearch var count = thds.length; //Write SpredSheet tSheet.getRange(row,1).setValue(searchword); tSheet.getRange(row,2).setValue(count); //Logger.log(searchword+":" + count); row++; sumCount = sumCount+count; } //Make Footer var fotter = '合計'; tSheet.getRange(row,1).setValue(fotter); tSheet.getRange(row,2).setValue(sumCount); var ActSheet = objSpredSheet.getSheetByName('Sheet1'); SpreadsheetApp.setActiveSheet(ActSheet); // Outputlog('GetLabelEnd') } function Outputlog(Message){ // for Log var LogTime = Utilities.formatDate(new Date(), 'JST', 'yyyy/MM/dd hh:mm:ss'); var logmessage = Message + ':' + LogTime; Logger.log(logmessage); };
コメント