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

#はじめに
毎日大量のメールが送られてくる...
一度見たらもう見ないであろうメールが溜まる...

手動でゴミ箱に移動させるのがとても面倒で、
メールの中身すら開けたくない...
気づいたら未読メールが100件を超えている...

何か良い方法がないかと調べていたらありました。
以下にまとめます。


#やり方
①Google Apps Scriptを作成
②実行する
③トリガーを用意して今後も自動的に実行されるようにする

#実装
今回は、メールにラベルをつけ、
指定したラベルのスターが付いていない7日より前のメールを削除するやり方を紹介します。
##1. 準備
###1-1. メールにラベルをつける
ラベルを付けたいメールを開きます。
メールの右上にある**▼**をクリックし、
**メールの自動振り分け設定**をクリックします。(下記画像参照)

![mail1.jpg.png](https://qiita-image-store.s3.amazonaws.com/0/75241/19df63d4-7219-09cc-37e3-52e74f3eb8c3.png)

次に、
**この検索条件でフィルタを作成**をクリックします。(下記画像参照)
![mail2.jpg.png](https://qiita-image-store.s3.amazonaws.com/0/75241/d2255ae5-34be-169f-164d-efed03ff9e6c.png)

以下の画像の画面が表示されます。
![mail3.jpg.png](https://qiita-image-store.s3.amazonaws.com/0/75241/041d89c5-bc79-dd95-5c11-86db59995bf7.png)
**ラベルを付ける**のチェックリストの**ラベルを選択**をクリックします。
新しくラベルを作成したい場合は、
**新しいラベル**をクリックし、ラベルを作成して下さい。
既に作成してあるラベルを使用する場合は、そのラベルを選択して下さい。
**フィルタを作成**ボタンの右側にある**○件の一致するスレッドにもフィルタを適用する。**のチェックリストを選択し、
**フィルタを作成**ボタンをクリックします。

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

##2. Google Apps Scriptを作成
ここから自動削除させる設定を行っていきます。
###2-1. Google Apps Scriptを新規作成
Googleドライブを開いてGoogle Apps Scriptを新規作成します。
[Gooleドライブ](https://drive.google.com/)
※Googleアカウントを複数持っている方は、設定したいメールのアカウントであるか確認して下さい

①Googleドライブの左側にある**新規**をクリック
②**Googleスプレッドシート**をクリック
③**ツール**をクリック
④**スクリプト エディタ**をクリック
以下の画面が表示されます。
![mail4.jpg.png](https://qiita-image-store.s3.amazonaws.com/0/75241/13474abe-ce9c-ea68-814c-8360e358f6cf.png)
⑤**空のプロジェクト**をクリック
以下の画面の**コード.gs**にJavascriptで"指定したラベルを自動削除させる"コードを書いていきます。

![mail5.jpg.png](https://qiita-image-store.s3.amazonaws.com/0/75241/8ad11bc0-4c54-7a87-4b72-d88d523ad89d.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:starred**を**is:starred**に変更して下さい。
既読のメールを表示させたい場合は、**is:read**を追加して下さい。


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

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

>
![image](https://qiita-image-store.s3.amazonaws.com/0/75241/a5da9e53-5711-7dfd-42f0-935b73218611.png)

適当なプロジェクト名をつけて**保存**してから**実行**をクリックすると処理が行われ、コード通りにメールがゴミ箱に移動されます。
途中、下記の画面が表示された場合、
![mail8.jpg.png](https://qiita-image-store.s3.amazonaws.com/0/75241/3ae7309d-7ac9-821e-b1b3-2369c6a8d429.png)
**続行**をクリック

![mail9.jpg.png](https://qiita-image-store.s3.amazonaws.com/0/75241/79068785-7e8e-6455-5d10-c64728a53e1b.png)
**承認する**をクリック


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

##4. トリガーを用意して今後も自動的に実行されるように設定
最後に、
今後も自動的にメールを削除させるためにトリガーを設定します。
**現在のプロジェクトのトリガー(実行ボタンの左にあるタイマーのようなアイコン)**をクリックして下記の画面を表示させます。

>![image](https://qiita-image-store.s3.amazonaws.com/0/75241/603d01e1-913b-11a3-4ecd-5de595d6c8c0.png)

**保存**したら、完成です！

#おわりに
ゴミ箱に移動されたメールは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/