Google Apps Script入門:メールの件数を簡単にカウントする方法

メールの件数を数えるのって、どうやってやるんだろう…GASで簡単にできるって聞いたことあるけど、自信がないなぁ…
猫男
猫男
catman
catman
よし、catmanが「GASでメールの件数をカウント」する方法を伝授しよう!

GASでメールの件数をカウントする方法

実際にメール件数をカウントするスクリプトを書いてみよう。


function countEmails() {
  var threads = GmailApp.getInboxThreads();
  Logger.log("受信トレイのメール件数: " + threads.length);
}

まずGmailApp.getInboxThreads()メソッドで受信トレイのスレッドを取得する。

このスレッドをthreadsとして扱い、その長さを取得することでメールの件数をカウントすることができる。

受信トレイ以外のメールもカウント

特定のラベルやカテゴリもカウントしたいなら、ラベルを指定する方法がある。


function countLabeledEmails() {
  var label = GmailApp.getUserLabelByName("重要");
  if (label) {
    var threads = label.getThreads();
    Logger.log("「重要」ラベルのメール件数: " + threads.length);
  }
}

ここでは、GmailApp.getUserLabelByName()メソッドで「重要」というラベルを取得し、それを使ってスレッドを数えている。ラベルに指定したスレッドの件数を取得するために、getThreads()メソッドを活用する。

日時を指定したメール件数のカウント

特定の日付以降のメール件数を知りたい場合、クエリを活用しよう。


function countEmailsFromPastWeek() {
  var threads = GmailApp.search('after:7d');
  Logger.log("過去1週間のメール件数: " + threads.length);
}

GmailApp.search()メソッドを用いて、特定のクエリを使ってスレッドを検索する。ここでは、過去1週間のメール件数を取得している。クエリの条件を変更することでさまざまな細かな条件でメールをカウントできる。

練習問題

GASを使って、以下のメール件数をカウントするスクリプトを書いてみよう。

  • 「仕事」ラベルのメール件数を数えよう
  • 過去30日のメール件数をカウントしよう

 

 

解答・解説


function countWorkEmails() {
  var label = GmailApp.getUserLabelByName("仕事");
  if (label) {
    var threads = label.getThreads();
    Logger.log("「仕事」ラベルのメール件数: " + threads.length);
  }
}

function countEmailsFromPastMonth() {
  var threads = GmailApp.search('after:30d');
  Logger.log("過去30日のメール件数: " + threads.length);
}

countWorkEmails()では、GmailApp.getUserLabelByName(“仕事”)で「仕事」ラベルを取得し、そのメール件数をカウントする。

countEmailsFromPastMonth()では、GmailApp.search(‘after:30d’)で過去30日のスレッドを検索し、その件数を数えている。

わぁ、これでGASでメールの件数を簡単に数えられるようになった気がします!
猫男
猫男
catman
catman
その調子だ!どんどんGASを使いこなして、メール管理をもっとシンプルにするんだ!