JavaScript
GoogleAppsScript
gmail

Gmailの受信トレイ内のメールを自動削除するやり方

More than 3 years have passed since last update.


はじめに

毎日大量のメールが送られてくる...

一度見たらもう見ないであろうメールが溜まる...

手動でゴミ箱に移動させるのがとても面倒で、

メールの中身すら開けたくない...

気づいたら未読メールが100件を超えている...

何か良い方法がないかと調べていたらありました。

以下にまとめます。


やり方

①Google Apps Scriptを作成

②実行する

③トリガーを用意して今後も自動的に実行されるようにする


実装

今回は、メールにラベルをつけ、

指定したラベルのスターが付いていない7日より前のメールを削除するやり方を紹介します。


1. 準備


1-1. メールにラベルをつける

ラベルを付けたいメールを開きます。

メールの右上にあるをクリックし、

メールの自動振り分け設定をクリックします。(下記画像参照)

mail1.jpg.png

次に、

この検索条件でフィルタを作成をクリックします。(下記画像参照)

mail2.jpg.png

以下の画像の画面が表示されます。

mail3.jpg.png

ラベルを付けるのチェックリストのラベルを選択をクリックします。

新しくラベルを作成したい場合は、

新しいラベルをクリックし、ラベルを作成して下さい。

既に作成してあるラベルを使用する場合は、そのラベルを選択して下さい。

フィルタを作成ボタンの右側にある○件の一致するスレッドにもフィルタを適用する。のチェックリストを選択し、

フィルタを作成ボタンをクリックします。

これで、ラベルを付けることができました!


2. Google Apps Scriptを作成

ここから自動削除させる設定を行っていきます。


2-1. Google Apps Scriptを新規作成

Googleドライブを開いてGoogle Apps Scriptを新規作成します。

Gooleドライブ

※Googleアカウントを複数持っている方は、設定したいメールのアカウントであるか確認して下さい

①Googleドライブの左側にある新規をクリック

Googleスプレッドシートをクリック

ツールをクリック

スクリプト エディタをクリック

以下の画面が表示されます。

mail4.jpg.png

空のプロジェクトをクリック

以下の画面のコード.gsにJavascriptで"指定したラベルを自動削除させる"コードを書いていきます。

mail5.jpg.png


2-2. コード


コード.gs

function myFunction() {

//7日より前のスターが付いていない大学連絡というラベルを削除する
var delayDays = 7;
var deleteLabel = "大学連絡";
var deleteThreads = GmailApp.search('older_than:'+delayDays+'d -is:starred label:'+ deleteLabel);

for (var i = 0; i < deleteThreads.length; i++) {
deleteThreads[i].moveToTrash();
}

}


moveToTrash()でメールをゴミ箱に移動させる。

・gmail内の検索にolder_than:7d -is:starred label:大学連絡を入力すると、

 "7日より前のスターが付いていない大学連絡というラベルがついたメール" がフィルタリングされて表示されます。

スター付きのメールを取り出したい場合は、-is:starredis:starredに変更して下さい。

既読のメールを表示させたい場合は、is:readを追加して下さい。

このように自分の好きなように組み合わせてフィルタをかけることが出来ます。


3. 実行

実行させるときは下記の画像を参考にして下さい。


image


適当なプロジェクト名をつけて保存してから実行をクリックすると処理が行われ、コード通りにメールがゴミ箱に移動されます。

途中、下記の画面が表示された場合、

mail8.jpg.png

続行をクリック

mail9.jpg.png

承認するをクリック

以上で、メールを削除する(ゴミ箱に移動させる)ことができました!


4. トリガーを用意して今後も自動的に実行されるように設定

最後に、

今後も自動的にメールを削除させるためにトリガーを設定します。

現在のプロジェクトのトリガー(実行ボタンの左にあるタイマーのようなアイコン)をクリックして下記の画面を表示させます。


image


保存したら、完成です!


おわりに

ゴミ箱に移動されたメールは30日後に自動削除されます。

そのため、今回削除したメールをもう一度見たい場合は、

削除後30日以内であればゴミ箱に残っています。

ちなみに、

このゴミ箱内の自動削除される日にちも今回のように変更させることができます。


参考サイト

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

URL:http://millkeyweb.com/gmail-label-trash/

・Gmailのゴミ箱の自動削除される期間を事実上変更する方法

URL:http://millkeyweb.com/gmail-edit-trash/

・時間が経過すると自動的にメールを削除するGmailフィルターをつくる

URL:http://lifehacking.jp/2013/02/time-based-gmail-filter/