GASでGmailの受信トレイに溜まった指定の日付以前のスレッドを自動でアーカイブする方法

inbox

photo credit: Theen … Junk Mail via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

Gmail使っていますか!?

まさか…受信トレイ、大量にメッセージ溜まっていませんか?

まさかまさか、何十件も、何百件も…、ましては何千件も溜まっていやしませんよね?

私はGmailアプリで「要のない」メールを都度アーカイブして運用しています。

受信トレイにメールが溜まっているのは…イコール、仕事が溜まっているということ…そんなの耐えられない!ってなわけです。

とはいえ、大量にメールが届いてしまうのは、相手次第…。

そんなときは、GASを使ってさくっと自動アーカイブしちゃいましょう。

ということで今回は、Google Apps ScriptでGmailの受信トレイに溜まった指定の日付以前のスレッドを自動でアーカイブする方法をお伝えします。

スポンサーリンク

Gmailの検索で一定日数以上過去のメールを絞り込む

GASで仕込む前に、Gmailの検索機能での「一定日数以上過去のスレッド」の絞り込み方を確認しておきましょう。

というのも、このGmailでの検索機能での絞り込みの「クエリ」がそのまま、GASでも使えるのです。

今回は、受信トレイに入っているスレッドで、かつ3日前(執筆日時が2020/3/10なので2020/3/7)以前のスレッドという条件にします。

これをGmailで検索するときは

  • 受信トレイに入っている→in:inbox
  • 2020/3/7以前→before:2020/3/7

という検索演算子を使って以下のようなクエリで検索すればOKですよね。

in:inbox before:2020/3/7

私のGmailで検索した結果がコチラでした。

Gmailで受信トレイの一定日数以前のスレッドを検索

まあまあ…ありますね…

さて、その他Gmailで使える検索演算子については以下をご参考くださいね。

Gmail で検索を絞り込む - パソコン - Gmail ヘルプ
職場や学校で Google アプリをご活用いただくには、

GASでGmailのスレッド検索を行う

Google Apps Scriptでは、ここで行ったものと同様のGmailでのスレッド検索を行うことができます。

Gmailのスレッドの検索をするには、GmailAppオブジェクトのsearchメソッドを使います。

GmailApp.search(クエリ)

クエリには、先程のGmail検索と同様のものを文字列で指定すればOKです。

これで、クエリの条件でヒットしたスレッドを配列で取得することができます。

スレッドの配列をまとめてアーカイブする

さて、こうして取得できたのは「スレッドの配列」です。

そこから配列についてループ回して、一つ一つアーカイブ…そんな処理を想定される方もいるかも知れませんが、もっとシンプルです。

というのも、「スレッドの配列」をそのままそっくりアーカイブする、素敵なメソッドが用意されています。

GmailAppオブジェクトmoveThreadsToArchiveメソッドです。

GmailApp.moveThreadsToArchive(スレッドの配列)

searchメソッドで取得したスレッドの配列をそのままこのメソッドの引数に渡せば良いのです…簡単ですね!

一定の日付より前のスレッドをアーカイブするスクリプト

以上を踏まえて作成したスクリプトがコチラです。

function archiveThreads() {
  const searchQuery = 'in:inbox before:2020/3/7';
  const threads = GmailApp.search(searchQuery);
  GmailApp.moveThreadsToArchive(threads);
}

特に説明は不要ですね。

実行をした上でGmailを確認すると、以下のように先ほどのスレッドたちは全てアーカイブされます。

指定の日付以前のスレッドがアーカイブされた

なお、searchメソッドによるスレッドの取得数には1回あたり500件という制限がありますので、大量にヒットしてしまいそうなときは注意が必要です。

数千件もあるような方は、何回か実行する必要がありますよ。

まとめ

以上、GASでGmailの一定の日付以前のスレッドをアーカイブするスクリプトを紹介しました。

超シンプルですよね。

ただ、皆さんが言いたいことはわかっています。

日付が固定じゃないか!ということですね。

次回、「今日から3日前より以前のスレッド」を自動でアーカイブできるように、修正を加えていきますよ。

GASでGmailの受信トレイに溜まった今日から指定の日数以前のスレッドをアーカイブする方法
Google Apps Scriptで溜まったGmailのメッセージを自動アーカイブする方法をお伝えしています。今回はGASでGmailの受信トレイに溜まった今日から指定の日数以前のスレッドをアーカイブする方法です。

どうぞお楽しみに!

連載目次:GAS初心者にオススメ!簡単Gmailツールの作り方

Google Apps ScriptではGmailの操作をとても簡単に行うことができます。このシリーズでは、GAS初心者でもすぐに作れる、簡単便利なツールをいくつか紹介していきます。
  1. GASでGmailを操作して日々の日報メールの下書きを自動で作成する
  2. GASでGmailの受信トレイに溜まった指定の日付以前のスレッドを自動でアーカイブする方法
  3. GASでGmailの受信トレイに溜まった今日から指定の日数以前のスレッドをアーカイブする方法
タイトルとURLをコピーしました