ワイズリマインダー

【続編】Gmail内の不要なメールを定期的に自動削除するようにしてみた

過去の記事:Gmailのメールを定期的に削除する

私のGmailにはさまざまなメールが届きます。
・永久保存しておきたいメール
・リアルタイムな通知の意味合いがあるメール
・定期報告メール
・メルマガ
・ネットショッピングのメール
など。

このうち、通知や定期報告、メルマガは一定期間経過すると不要なものになります。
ネットショッピングのメールも購入した情報は残しておきたいけれど、
決済が完了したとか、発送したとかは保存不要です。
Gmailには容量制限がありますのでどんどん消していきましょう。
※デフォルトで15GB

 

これらのメールをそれぞれ任意のタイミングで自動削除するプログラムを構築したので備忘録として記録します。

 

大まかな作業としては、定期実行するプログラムを一度だけ設定し、
後はその都度、ルールにのっとったラベルを作成しフィルタで振り分けるだけです。
定期実行するプログラムさえ動いていれば、数年後に新しいルールのラベルを作成するだけで勝手に削除されます。
(正確には削除ではなくゴミ箱へ移動します。ゴミ箱へ移動した後は30日後に完全削除されます。)

そのルールとは、ラベル名を次のようにするだけ

 

nth日後に自動削除

 

nthには任意の数字が入れられます。
『30日後に自動削除』とすると30日後に消えます。
『365日後自動削除』とすると約一年後に消えます。

『30日後に自動削除』ラベルの配下に任意のラベルを作成する事で、
定期的に自動削除しつつ、メールを見るときにも便利です。
階層数に制限はありませんのでGmailが許す限りの階層を作成できます。

このようにすると受信後7日経過したメルマガは全て削除されます。

 

今回は90日後にNASから報告されたレポートを削除する設定を行ってみます。
Gmailを開き、歯車 > すべての設定を表示 > ラベル > 新しいラベルを作成 をクリックします。

 

 

 

続いて、NASを認識できる名称でラベルを作成します。

 

 

次に受信したメールがこのラベルに振り分けられるようにフィルタを作成します。
Gmailを開き、歯車 > すべての設定を表示 > フィルタとブロック中のアドレス > 新しいフィルタを作成 をクリックします。

 

 

該当するメールだけに該当する絞り込みを入力し、フィルタを作成をクリックします。

 

ラベルにチェックを入れ、先ほど作成したラベルを選択します。
既に受信しているメールも対象にしたいので、一番下にもチェックを入れ、フィルタを作成をクリックします。

 

先ほど作成したラベルをクリックする事で、該当メールが一覧で表示されます。
もし該当しないメールが含まれていたりした場合、フィルタのルールを見直してください。

 

このように、ラベルとフィルタを適宜追加してください。
では肝心のプログラムを設置していきます。
ここからは一度設置すれば再度編集する必要はありません。

 

Apps Scriptを開きます。

新しいプロジェクトをクリックします。

 

次のコードをコピペして保存(Ctrl + S)してください。

function searchLabels(){
  let labels = GmailApp.getUserLabels();
  // ひとつずつ処理
  for(let n in labels){
    // ラベル名の取得
    let label = labels[n].getName();
    // n日後に削除
    let result = label.match(/^(\d+)日後に自動削除/);
    // マッチしなかった場合は処理しない
    if(result === null) continue;
    // コンソール表示
    console.log( label );
    // 削除処理
    moveToTrashAfterDays( label, result[1] );
  }// END for
}

function moveToTrashAfterDays( label, day ){
  let threads = GmailApp.search('label:' + label + ' AND older_than:' + day + 'd');
  for(let i=0, len=threads.length; i<len; i++) threads[i].moveToTrash();
}

 

searchLabels が選択されている事を確認して、実行ボタンを押します。

 

承認が必要な場合は、権限を確認して該当するアカウントをクリックします。

 

 

このような画面が表示されたら、詳細 > 無題のプロジェクト(安全ではないページ)に移動 をクリックしましょう。

 

 

許可をクリックします。

 

自動削除を実行したラベルが表示されます。
※件数が多い場合はタイムアウトになる場合があります。

 

この時点で90日経過したメールはゴミ箱へと移動しています。
削除したくないメールがゴミ箱へ移動していた場合は、ゴミ箱から出してフィルタの設定を見直してください。

 

時計マークのトリガーをクリックして、トリガーを追加ボタンをクリックします。

 

関数の指定がsearchLabelsになっているのを確認して、
実行する間隔・時刻を指定し、保存ボタンを押します。
※この設定では毎日朝4時に実行してくれます。

 

以上で自動実行の設定は完了です。

受信済みのメールで削除対象のメールが多い場合は、一度の実行で削除しきれません。
プログラムを記述したページの実行ボタンを根気強く繰り返し押し続けるか、何日間か待ってみましょう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

検索

最近のコメント

最近の投稿

タグ

フィード配信

アーカイブ

外部リンク