毎日沢山の画像付メールがうじゃうじゃ来るんですよ。定期的に削除するのを忘れたらGmailのキャパ15Gを超えてしまうんです。15ギガ超えない様に対策と、一定期間(30日)はメールの保存をしたいです、エラー出た時に原因を見つけやすいので。一定期間(30日)過ぎたメールは無意味になってしまうから毎日自動で削除フォルダに移ってもらう。削除フォルダのメールは30日後に本削除なので、メールは合計で60日保存になるのかな?こんな感じでメールをGoogleドライブのGoogle Apps Scriptを使って世代管理してみました。
Gmailで、30日後に削除するラベルを作ります。
30日後に削除したいメールを、設定のフィルターを使って「001 日記」ラベルに放り込んでいきます。
フィルター例は、処理: 受信トレイをスキップ, ラベル「001 日記」を付ける, 迷惑メールにしない。です。
過去に、半年ほど放置で15ギガ一杯になり受信エラーになった事があります。
「001 日記」ラベル内のメールを30日後に削除する為に、Apps Scriptを作成・適用したいので、Googleドライブをクリック
Googleドライブ画面で、新規をクリック
その他にカーソルを置いて、「アプリを追加」をクリック
Google Apps Script アプリを選んでインストール
スクリプトエディタを開くと、このような画面になりますので、スプリクトを編集して、プロジェクト名を任意の名前に。ちなみに僕は、「gmail30日で削除」という名前にしました。そして保存します。
function expire30days() { var day = 30; var label = '001 日記'; var threads = GmailApp.search('older_than:' + day + 'd -is:starred label:' + label); for (var i = 0; i < threads.length; i++) { threads[i].moveToTrash(); } }
自分のラベルの名前に合わせて「30日で削除」を「001 日記」に修正したりします。
修正したらスプリクトを実行してみましょう~
スプリクトの実行には承認が必要なので、承認画面になったら承認します。
Gmailの方で許可します。Apps Scriptからgmailを操作するには、gmailに対して「Apps scriptで操作される事を許可する」必要があるのです。
作成したApps Scriptを定期的に自動実行して欲しいので、トリガー(きっかけ)を作成します。cronみたいな感じです。
リンク部分をクリックしてトリガーを追加します。
好きなタイミングで定期実行するかを決める事ができます。日タイマーを選択すると、毎日自動実行してくれます。
これでgmailに作成した「001 日記」ラベルに振り分けられたメールを、expire30daysメソッドを毎日定時実行して30日たっているメールを自動削除する世代管理システムの設定ができました。
さて、上手くいくかな~
参考サイト 文系プログラマによるTIPSブログ
https://www.bunkei-programmer.net/entry/2016/01/02/021702