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


inbox

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

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

Gmail使っていますか!?

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

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

私はメールアプリ「Inbox」を使い、受信トレイをある意味、メール関連のタスク管理ツールとして使っています。

Mailbox対Inbox徹底比較!iPhoneメール神アプリ対決を制するのは!?
次世代版Gmailとも言われるInboxが一般公開。そのUIや使い勝手にはMailboxを強く意識したもので、どちらを使おうか悩まれている方も多いはず!本記事は二つのiPhone神メールアプリを徹底比較します。

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

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

ほとんど見ないし、アーカイブが面倒。

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

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

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

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

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

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

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

  • 受信トレイに入っている→in:inbox
  • 2018/8/27以前→before:2018/8/27

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

in:inbox before:2018/8/27

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

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

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

Gmail で使用できる検索演算子 - Gmail ヘルプ
検索演算子と呼ばれる単語や記号を使用して、Gmail の検索結果を絞り込むことができます。また、複数の演算子を組み合わせて検索結果をさらに絞

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

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

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

GmailApp.search(クエリ)

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

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

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

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

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

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

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

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

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

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

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

特に説明は不要ですね。

実行をした上で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の受信トレイに溜まった今日から指定の日数以前のスレッドをアーカイブする方法

  投稿者プロフィール

タカハシノリアキ株式会社プランノーツ 代表取締役
株式会社プランノーツ代表、コミュニティ「ノンプロ研」主宰。1976年こどもの日生まれ。東京板橋区在住。「ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ
★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ
★フォロー頂ければ嬉しいです。

コメント