Gmailに溜まっているメールを全削除する

会社員だったときは会社で発行されたメールを使っていたからそれでよかったんだけれど、独立してからそれまでプライベートで使っていたアドレスを仕事用に転用した結果、過去15年分くらいのゴミメールがとんでもない数放置されていた。

数にすると約3万通、、、放置しておいてもいいっちゃいいんだけど、やっぱ綺麗に整理されている方が精神的に落ち着くよね。

と、いうことでGmail全削除するGoogle Apps Scriptコードを作った。20行くらいのコードを書くだけで対象のメールを全削除できちゃうの楽すぎてtoo ez。

ちなみに1日1.5万通くらい削除すると、1日に削除できるメール数の上限に引っかかって次の日を待たないといけなくなるのがちょっと不便ではある。とはいえ、人力でぽちぽちする労力とは比にならないので全然OK。

注記:

  •  サンプル内のGmail Queryは「2024-01-01以前の受信ボックス内、かつ、ラベルなしのメール」。category:promotionsとかにすると広告メール全削除とかもやれる。

  • deletePastMailAll ()を実行したときに最大件数は500通 ※GmailApp.search()で1度に取得できる上限

  • mugen () を実行するとGASプログラムが実行時間上限に引っかかるか、残メール0通になるまで無限に実行し続ける。

function deletePastMailAll () {
  //2024-01-01以前の受信ボックス内、かつ、ラベルなしのメール
  const query = 'before: 2024-01-01 in:inbox has:nouserlabels';
  const deleteThreads = GmailApp.search(query);
  console.log(deleteThreads.length)
  
  //検索条件に合致するメールをゴミ箱に移動
  for (let i = 0; i < deleteThreads.length; i++) {
    console.log(deleteThreads[i].getMessages()[0].getDate())
    deleteThreads[i].moveToTrash();
  }
  return GmailApp.search(query).length;
}
//タイムアウトするか、残メール0件になるまで無限実行
function mugen () {
  let count;
  do {
    count = deletePastMailAll ();
  } while (count != 0)
}


この記事が気に入ったらサポートをしてみませんか?