Gmailの不要なメールを自動で削除する方法【Google Apps Scriptを使用】

プログラミング

メールの中には営業メールや不要なメールも多々あり、それらにいちいち目を通したり、削除したりするのは時間のムダです。

また、GmailはGoogleドライブの容量を使用するので、不要なメールを放置していると、Googleドライブを使いたいときに使用できない、といったことになりかねません。

そこでこの記事では、Gmialの自動振り分け機能とGoogle Apps Scriptを使って、届いてから一定期間が経った不要なメールを自動で削除していくように設定する方法を紹介します。

不要なGmailを自動で削除する仕組み

仕組みとしては以下になります。

  1. Gmailの自動振り分け機能を使って、不要なメールを特定のラベルに振り分ける
  2. Google Apps Script(Excelでいうところのマクロ)を使用して、届いてから一定期間が経ったメールを [ゴミ箱] に移す
  3. [ゴミ箱] のメールは、30 日後に自動的に削除される

自分で★を付けておいたメールは自動削除されません。保存したいメールには★をつけておきましょう。

 

Gmailの自動振り分け設定のやり方

まずは、不要なメールを振り分けましょう。なお、PCでの操作を想定しています。

1. 右上の歯車マークをクリックし、出現した右のサイドバーの『すべての設定を表示』をクリック

2. 『新しいフィルタを作成』をクリック

3. 振り分けたいメールの条件を入力

多くの場合、メールアドレスで振り分けることになると思います。その場合、メールアドレスの「◯◯@△△」の△△の部分を『From』に入力すればOKです。

複数指定したい場合は、「OR」を使えば大丈夫です(半角スペースも必要です)。以下の画像では、GoogleとYouTubeから送られてくるメールを指定しています。

メールの指定ができたら、右下の『フィルタを作成』をクリックします。

4. 『新しいラベル』をクリック

5. ラベル名を入力

  • ラベル名に「&」が入っていると、Gmailの自動削除プログラムが正常に動きません。
    ラベル名にはあまり記号を使わないようにしましょう。
  • 余談ですが、ラベル名に『01.』『02.』などの数字を付けておくと、ラベルの並び替えができます。

6. 「受信トレイをスキップ(アーカイブする)」「ラベルを付ける」「◯件の一致するスレッドにもフィルタを適用する。」にチェックを入れて『フィルタを作成』をクリック

「◯件の一致するスレッドにもフィルタを適用する。」にチェックを入れておくと、過去に届いているメールも自動振り分けの対象になります。

7. ラベルが追加され、自動振り分けが完了

この設定をしてからは、自動で指定したメールがラベルに振り分けられます。

 

Google Apps Scriptで不要なメールを削除していく

Googleスプレッドシートには、Excelのマクロのような機能がついており、それを利用します。

コードの追加

1. 新しくスプレッドシートを追加

2. スクリプトエディタの起動

「ツール」 -> 「スクリプトエディタ」を選択します。

3. 定期的に不要なメールを削除するためのコードを追加し、『Ctrl + S』で保存する

コードは以下です。コピペできます。

function expire7days() {
  // 削除対象の期間
  var day = 7;

  // 削除対象のラベル名
  var array = ["01.テスト"];
  
  //ラベルを指定して削除したい場合は下記を使用
  for (var i = 0; i < array.length;i++) {
    var deleteLabel = array[i];
    console.log(deleteLabel);
    var threads = GmailApp.search('older_than:' + day + 'd -is:starred label:'+ deleteLabel);
    for (var j = 0; j < threads.length; j++) {
      threads[j].moveToTrash();
      Utilities.sleep(500);
    }
  }
}
  • var day = 7; の数字を変えることで、メールが届いてからの期間(日数)を指定できます。
  • var array = [“01. テスト”]; と書いているところに、削除したいメールを振り分けているラベル名を記載します。複数のラベルを指定したい場合は、var array = [“01. テスト1”, “02. テスト2”, “03. テスト3″…]; のように、,(コンマ)で区切ればOKです。

 

トリガーの設定

最後に、自動で不要なメールが削除されるようにトリガーを設定します。ここでは毎日1回実行されるように設定してます。

1. 左のメニューの目覚ましのようなマークをクリックし、右下の『+ トリガーを追加』をクリック

2. 実行されるタイミングを指定して『保存』をクリック

イベントのソースは「時間主導型」、時間ベースのトリガーのタイプを選択は「日付ベースのタイマー」、時刻は任意の時間を指定してください(午前0~7時の間ぐらいに設定しておくと、出社前にコードが実行されます)。

3. 以下の画像のように、ブラウザのURL入力欄の右にアイコンが表示されるのでクリック。表示されたURLをクリック

4. 自分のGoogleアカウントをクリック

5. 以下のような表示がでるが問題なし。左下の『詳細』をクリック

これは、Google Apps Scriptのコードを実行するためには承認が必要なため表示されます。エラーやおかしなページに飛ばされるということはありません。

6. 左下の『無題のプロジェクト(安全ではないページ)に移動』をクリック

7. 右下の『許可』をクリック

8. トリガーが追加される

これで、あとは自動的にコードが実行され、不要なメールが削除されます。

冒頭にも書きましたが、自分で★をつけたメールは自動削除されません。保存したいメールには★をつけておきましょう。

 

最後に|小さな時間の積み重ねが大きな意味を持つ

メールの自動削除で得られる時間は1日あたりでほんの数分~10数分ぐらいでしょう。

しかし、メールの確認は毎日やるという人がほとんど。積み重なっていくと意外と大きな時間となっていきます。

自動振り分けを使うことで不要なメールに目を通す必要がなくなるので、人によっては結構時間の節約になるかもしれません。

まずは小さなことからでも仕事を効率化していきましょう。

タイトルとURLをコピーしました