Gmailの受信トレイ、特定のラベル内のメールを条件を絞って自動削除する方法
photo credit: FixtheFocus via photopin cc

Gmailの受信トレイ、特定のラベル内のメールを条件を絞って自動削除する方法

前回、Gmailのゴミ箱の削除期間を事実上変更する方法を紹介しました。あれを応用し、日数とラベル名を変えて新しく関数をかけば、他のラベルにも期間を設けた自動削除の設定が簡単にできます。とても簡単にできますが、欠点があります。

それは、スター付きは除外するや重要メールは削除しないなど、細かく条件を絞れないことです。条件を絞って特定のメールは残し不要なメールだけ自動削除やアーカイブできたら、効率は10倍よくなるといっても過言ではないでしょう。

受信トレイも綺麗に保てるとなんだか不思議と気分もスッキリ晴れるのは私だけではないと思っています。

Gmailを自在に操る必須の呪文

必須の知識として、Gmailの詳細検索で使える演算子と呼ばれる魔法の記号やキーワードを覚えておきましょう。今回紹介する方法はこれが鍵となります。この演算子を組み合わせることで、魔法を発動させる呪文になるのです。Gmailにバルスを発動させれるのです。

コピーペーストでスクリプトコードを使う分には、必須な知識ではないですが、JavaScriptの基礎知識Google Apps Scriptの使い方を覚えておくことを薦めます。

10行以内!自動削除のスクリプトコード

Googleドライブから「作成」→「スクリプト」→「空のプロジェクトの作成」と進んで下記コードを書いてください。

function inboxTrash() {
  // 受信トレイ内の3日より前のスレッドをゴミ箱に移動する(スター付きは除く)
  var threads = GmailApp.search('in:inbox is:read older_than:3d -is:starred');
  
  for (var i = 0; i < threads.length; i++) {
    threads[i].moveToTrash();
  }
}

このスクリプトコードの3行目に注目してください。Gmailの詳細検索で使える演算子を使った方法で、スレッドを取得しています。試しGmail内の検索で「in:inbox is:read older_than:3d -is:starred」を検索してみてください。

この演算子でできた呪文で、受信トレイ内の既読で3日より前でかつスターが付いていないメールが表示されるはずです。コードでは、そのメールのスレッドが取得されています。それに対してゴミ箱に送るという処理を実行しています。

3行目がポイントで「in:inbox is:read older_than:3d -is:starred」の組み合わせを変えることで、特定のラベル内の既読のみ削除したり、例では3日より前ですが、5日、7日、より前に変えたり、特定のメールアドレスだけと的を絞ることもできます。

自動的に実行されるように設定するには、トリガーを設定してください。トリガーの設定は前回の記事を参考にしてみてください。

検索オプションを使える呪文

こうしたら便利じゃないかという例を5つ紹介します。

7日より前の受信トレイ内のメールを削除

in:inbox older_than:7d

ラベルにyomanaiが付いたメールを削除

label:yomanai

7日より前のスター付きを除いた既読メールを削除

is:read older_than:7d -is:starred

7日より前のスター付きを除いた既読メールを削除

is:read older_than:7d -is:starred

送信者がドメインで件名にお知らせが入るメールを削除

from:ドメイン subject:お知らせ

あなたにあった方法を探ってみてください。

まとめ

条件を指定して、自動削除する方法

  • Gmail詳細検索の演算子を覚える
  • Google Apps Scriptにコードを書く
  • トリガーの設定
  • カスタマイズを試してみる

あとがき

このスクリプトコードでは、moveToTrashメソッドを使ってゴミ箱に送っていますが、アレンジすれば、アーカイブしたり特定のラベルに移動させたりということができます。前回紹介したGmailのゴミ箱の自動削除される期間を事実上変更する方法と組み合わせればもっとGmailライフが快適になると思いますよ。