コアダンプの数だけ強くなれるよ

見習いエンジニアの備忘log

Gmailで不要なメールを定期的に削除する

Gmailで不要なメールを定期的に削除するスクリプトを書いてみた。

[仕様]

  • 指定ラベルのメールのうち30日経過したものを削除
  • 毎晩0時に実行(トリガーを時間主導に設定)

[手順]

  1. ドライブ-->Googleスプレッドシート新規作成し開く-->ツール-->スクリプトエディタ
  2. 既存のコードを削除して下記コピペ
  3. リソース-->現在のプロジェクトのトリガー-->イベントを時間主導に設定

スクリプトの内容

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