Gmailで不要なメールを定期的に削除する
Gmailで不要なメールを定期的に削除するスクリプトを書いてみた。
[仕様]
- 指定ラベルのメールのうち30日経過したものを削除
- 毎晩0時に実行(トリガーを時間主導に設定)
[手順]
- ドライブ-->Googleスプレッドシート新規作成し開く-->ツール-->スクリプトエディタ
- 既存のコードを削除して下記コピペ
- リソース-->現在のプロジェクトのトリガー-->イベントを時間主導に設定
スクリプトの内容
function deleteMailExpired30Days() { var day = 30; var label= [ '親ラベル-001.子ラベル ', '親ラベル-002.子ラベル ', '親ラベル-003.子ラベル ' ]; for (entry = 0; entry < label.length; entry++) { var threads = GmailApp.search('older_than:' + day + 'd ' + 'label:' + label[entry]); for (var i = 0; i < threads.length; i++) { threads[i].moveToTrash(); } } }
labelのリストを手書きしている点が少々ダサい…
親ラベル配下の子ラベルを取得する方法とか無いのかな。
スター付きのメールを除外したい場合は検索条件に"-is:starred"を追加する。
[参考]Gmailで使用できる検索演算子
https://support.google.com/mail/answer/7190?hl=ja