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);
};
コメント