【Gmail】指定した過去メールを自動削除する方法|Google Apps Script

今回はGoogle Apps Script (GAS)を利用して、Gmailの指定した過去メールを自動で削除する方法となります。

【Gmail】Google Apps Scriptで指定した過去メールを自動削除する方法

メールを削除する条件の例

例ではGoogle Apps Scriptのスクリプトで、次の3つの条件のGmailのスレッドを削除します。

  • スター付きではないスレッド
  • タグがないスレッド
  • 2週間前より古い日のスレッド

例のスクリプトではGmailをスレッド表示で利用してない場合でも、スレッド単位で取得して削除します。

また、Gmailのメールの表示設定には、関連するメールをまとめて表示するスレッド表示と、1つ1つのメールを表示する設定があります。表示方法を切り替える方法については以下のリンク先を参考にしてみてください。

メールを削除するスクリプト

Google Apps Scriptでプロジェクトを作成し、次のスクリプトを記述して実行することで、指定した条件のスレッドを削除できます。

また、プロジェクトを作成・実行する方法については、以下のリンク先を参考にしてみてください。

function myThreadsToTrash() {
  // 指定したスレッドを取得
  const getThreads = GmailApp.search('-is:starred has:nouserlabels older_than:14d', 0, 100);
  console.log(getThreads.length);
  
  // 取得したスレッド数が1以上の場合
  if(getThreads.length > 0){
    // 取得したスレッドをゴミ箱へ移動
    GmailApp.moveThreadsToTrash(getThreads);
    // 再帰呼び出し
    myThreadsToTrash();
  }
}

一定期間・時間ごとに自動削除する場合

Google Apps Scriptではプロジェクトにトリガーを設定することで、作成したスクリプトを一定期間・時間ごとに実行できます。

トリガーの設定方法については以下のリンク先を参考にしてみてください。

Google Apps Scriptのコードについて

今回の例では、Google Apps Scriptで指定したスレッドを取得して削除しています。

また、一度にたくさんのスレッドを取得するとエラーとなる場合があるので、スレッド100件ごと取得して削除する処理を繰り返し、削除するスレッドが0になったら終了させています。

以下、Google Apps Scriptのコードの簡単な説明となります。

指定したスレッドを取得

コード3行目のGmailAppクラスのsearchメソッドでは、引数に指定した条件のスレッドを取得しています。メソッドの第1引数は検索条件となり、第2引数は取得する開始位置、第3引数は取得する最大値となります。

また、今回の例ではスレッドの検索にGmailの検索演算子を利用しています。詳しくは以下のリンク先を参考にしてみてください。

指定したスレッドをゴミ箱へ移動

コード7行目からの箇所では、取得したスレッド数が1以上の場合に、GmailAppクラスのmoveThreadsToTrashメソッドで、引数に指定したスレッドを削除しています。

そして、関数を再帰的に呼び出し、取得できるスレッドが0になるまで処理を続けます。

参考サイトなど

コメント投稿コメント投稿欄を開く

コメントは、項目欄(*は必須項目)を入力し、「コメントを送信」ボタンをクリックしてください。 (メールアドレスは公開されることはありません。コメントの公開は承認制となります。)

Twitterで返信する場合はこちらから。