かずきち。の日記

サーバサイドエンジニアのつぶやき

Googleの追加容量は覚せい剤のようだ!会社もプライベートも1日の問い合わせ内容が多すぎるのでGmailのラベル分析スクリプトをさくっと書いてみた

作ったきっかけ

会社もプライベートも1日の問い合わせ内容が多すぎます。
Googleは無料で15GBもらえるんですが、年齢を重ねてくると容量がなくなってくるんです。

f:id:kazukichi_0914:20201212163548p:plain

100GBの追加で年2500円

らしいです。

家族からも年2500円ならお金払えばいいじゃんと言われていますが、なんかサブスク系で不用意に課金すると負けなんじゃないか?って思ってるフシがありまして…
追加容量を買うのに、お金がかかるけど…
一回追加容量買ったら、死ぬまでお金を払うんですよ?
なんというか覚せい剤の魔力から抜け出せなくなってずっと課金をしてしまう人のようで、容量くらいは自分で確保したい。
だったらスクリプトを書いて、自分でGmailのラベル分析をするコードを書いてみました。

function getUserLabelsSample() {
  //スプレッドシートのkeyを指定して取得
  var spreadsheet = SpreadsheetApp.openById('ここを自分のスプレッドシートIDに変えてね。スプレッドシートURLの末尾の英数字ですI');

  // ラベルのすべての名前を記録します
  var labels = GmailApp.getUserLabels();
    
  //行追加
  spreadsheet.insertColumnsBefore(2, 1);

  //本日の日付けを(b,1)に転記
    // 現在日時を取得
    var today = new Date();
    SpreadsheetApp.getActiveSheet().getRange(1,2).setValue(today);  
  
  for (var i = 1; i < labels.length; i++) {
    
    Logger.log("label: " + labels[i].getName());
    var label = GmailApp.getUserLabelByName(labels[i].getName());
    var mailCount = label.getUnreadCount();
    var mailBody = '件数:' + mailCount;
    Logger.log(mailBody);
    //スプレッドに書き込む

    //ラベル名
    SpreadsheetApp.getActiveSheet().getRange(i+1,1).setValue(labels[i].getName());    
    //ラベル数
    SpreadsheetApp.getActiveSheet().getRange(i+1,2).setValue(mailCount); 
    

  }  
}

あとはこのスクリプトを1日1回の起動をしたいわけです。
Linuxだったら、crontab -eなどの自動実行スクリプトが存在しますが、
GASのメリットはGoogleのサーバ上で自動実行を走らせてくれるところです。

script.google.com

ここにアクセスすると、自動実行するスクリプトのトリガーを設定できます。
今回はラベル計算を自動化したいので、ラベル計算のスクリプトを開きます。

f:id:kazukichi_0914:20201212164800p:plain

こんな感じでさっきのスクリプトを貼り付けます。
3行目のopenByID('~~~~~~')の箇所は自分のスプレッドシートIDに書き換えてください。
これで完成なわけです。

script.google.com

ここにアクセスして、新しいプロジェクトを作って貼り付けます。
めっちゃ簡単ですね。

実行をしてみよう

スクリプトページには実行ボタンがあります。
「▶」の再生ボタンです。
これを実行するとメールの時系列ラベル分析ができるわけです。
メール分析を手作業でやってるーなんて人がいたらぜひ使ってみてください。
サーバーレス・24時間稼働・集計ミスなしなので、ルーティンワークをやってる人にはおすすめです。
パソコンの電源をつけることなく、Googleが処理します。
寝ていても、旅行をしていても、友達と遊んでいても自動実行です。
こんなスクリプトを実行します。

GASで5分の起動の壁を越えます 日常業務の自動化を促進する方法を設定いたします

コードの実行方法・設定がよくわからない人は上記をご利用ください。
今回のメール問わず、自動化できそうな要素がある場合はご相談ください。
できればcsvなどではなく、Google上で完結するサービスは自動化しやすいです。

コードレスの自動化よりコードを書く自動化のほうがかゆいところに手が届く

f:id:kazukichi_0914:20201212170417p:plain
引用:
https://xtech.nikkei.com/it/atcl/column/17/080700333/101900003/

世の中的にコードを書けない人向けにRPAなるものが流行っていますが、コードを書ける人ならコードを書いたほうが早いと思います。
これで自分に届いた問い合わせメールなどの頻度を自動分析できるので、役に立ちそうです。
死ぬまで毎日1日1回起動します。

f:id:kazukichi_0914:20201212205710p:plain

手動で問い合わせメールとか分析している方がいましたら使ってみてください。