【GAS】古いGmailを定期的にゴミ箱へ移動

以前からずっと動かしていたのですが、GASで定期的に古いメール、特に「update」カテゴリや「Promotions」カテゴリに入るメールをゴミ箱へ移すScriptを見直しました。

まだ無駄が多い感じがしますが、現在はこんな感じで30日以上前に受信した「update」カテゴリに入っているメールをどんどんゴミ箱へ移動させています。

var maxDate = new Date();
  maxDate = maxDate.setTime(maxDate.getTime() - (30 * 24 * 60 * 60 * 1000));
  var maxDateFormat = new Date(maxDate);
  var mDate = maxDateFormat.getMonth() + 1;
  if(mDate < 10){mDate = "0" + mDate};
  var dDate = maxDateFormat.getDate();
  if(dDate < 10){dDate = "0" + dDate};
  var maxDateText = maxDateFormat.getFullYear() + '/' + mDate + '/' + dDate;
  var threads = GmailApp.search('category:updates before:' + maxDateText);
  for (var i = 0; i < threads.length; i++) {
      threads[i].moveToTrash();
      Utilities.sleep(1000);
}

あとは定期的にScriptが動いてくれればOK。
sleepは入れなくても構わないと思いますが、以前頻繁に削除を走らせていた時に、「やり過ぎ」的なエラーメッセージが飛んできたからだったと思います(笑


まぁGmailなので削除する必要性も無いといえば無いのですが、気になる方は定期的に削除をしても良いと思います。

「GmailApp.search」の中にメール検索条件を入れているわけですが、例えば「label:read」を入れて既読メールだけを削除したり「has:attachment」を指定して、添付ファイルの付いているメールだけを削除しても良いですね。

このブログの人気の投稿

ウェブサイトユーザビリティ評価のためのSUS(System Usability Scale)

離脱改善指標に関するメモ

[Google Spreadsheet]ある文字列を含むリストを表示させる