Gmailでメールを自動的に削除するスクリプト
この記事を読むのに必要な時間は約 5 分です。

既存のメールアカウントも多いので、用途に応じてGmailのアカウント複数を親アカウントにして、それぞれでpopの設定してあります。
ただ、Gmailアカウント毎に15GBの容量の制限もありますし無駄なメールは削除しておきたい。
運用を始めて、数ヶ月手動で対応するのもなんだなということでGAS(Google Apps Script)で自動実行しましょうということで、先人がたの知恵を拝借させていただき、自分の用途に合わせてカスタマイズしてみました。
参考にしたサイトは以下のとおりです。
修正する場合は、Googleドライブ(type:script)を開いて、右クリックメニューで対象のスクリプトからApps Scriptを選択します。
メール検索条件を試す場合は、次のようにGmailの上部にある検索フォームに入力すると試すことができます。
この場合は、受信トレイにおいて2日経過した既読メールかつ、スター付きを除くというパターンです。
未読検索をしたい場合、簡単に「l:unread」で未読メールのみ表示することができるので便利ですよ(iOS/AndroidのGmailでも同様に検索可能)。
検索条件については、以下サイトを参考にするとわかりやすいです。
さて、私の運用に合わせてカスタマイズした、メールの自動削除スクリプトは以下のようになりました。
function autoMailExpire() { // 2日経過した既読メールは削除 expireReadMail(2); // 35日経過した未読メールは削除 expireUnreadMail(35); } // 既読メールの削除(スター付きは除く) function expireReadMail(delayDays) { var query = 'older_than:' + delayDays + 'd' + ' -label:starred is:read label:inbox'; var deleteThreads = GmailApp.search(query); Utilities.sleep(1000); for ( var i = 0; i < deleteThreads.length; i++ ) { deleteThreads[i].moveToTrash(); Utilities.sleep(100); } } // 未読メールの削除(スター付きは除く) function expireUnreadMail(delayDays) { var query = 'older_than:' + delayDays + 'd' + ' -label:starred is:unread label:inbox'; var deleteThreads = GmailApp.search(query); Utilities.sleep(1000); for ( var i = 0; i < deleteThreads.length; i++ ) { deleteThreads[i].moveToTrash(); Utilities.sleep(100); } }
- 2日経過した既読メールかつ、スター付きを除いたメールはゴミ箱行き
- 35日経過した未読メールかつ、スター付きを除いたメールはゴミ箱行き
のまひ親父のメモさんのソースを参考に、利用しない条件を削除してシンプルにしています。
これで容量不足を気にせず利用できるようになりました。
検索ボックスでの検索条件については、こういったスクリプトを実行しない人にも便利ですので、覚えておいて損はないですよ!
ディスカッション
コメント一覧
まだ、コメントがありません