メインコンテンツへスキップ
見出し画像

Gmailの自動断捨離方法 休みなんで1,000通以上一挙に削除するツール

    今まで手作業でフィルタリングして削除していたのだが

    Google Apps Script
    を使えば「任意のメールを自動で削除」するスクリプトを定期実行できます。

    画面は載せていません、画面載せてもどうせすぐに改定されて混乱するので、「こうすれば、出来る」という事を知り、後はAIに最新のやり方聞いてください。

    「毎月自動断捨離」の正体


    Gmail単体では「◯日後に削除」はできない
    → “定期的に一発処理”する仕組みにする

    Google Apps Script(GAS)なら「ラベル付き or 検索条件で■■日以上→ゴミ箱へ移動」を自動化します。まずはGASで安全に試し、

    技術があればGmail APIで永久削除もできるらしい、俺はやんなかった。

    準備簡単でGmail内完結:Google Apps Script(GAS) → ゴミ箱へ移動(moveToTrash)。権限はGmailAppでOK。テスト推奨。

    総論 すばやい手順(3分でOK)

    • すばやい手順(3分で設定)
      スクリプトを保存:

    • 検索でscript.google.com で自分のGMAILアカウントの、プロジェクトを開き、実行したい関数を作成(後述するコピペでOK)して保存。

    • 保存ボタンの右の実行ボタン押して終わり。

    一度の実行ですべてゴミ箱に入れるようにする

    GAS(Apps Script)で「一度の実行で可能な限りすべてゴミ箱へ移す」コードを実行します。ただし GAS の実行時間制限(約6分) により、絶対に全件を1回で処理できる保証はありません。そこで「一回でできるだけ多く処理する」実装と、実行時間を監視して安全に終了する仕組みをセットにします。まずは少量でテスト。

    できるだけ一度で全部処理する実装
    戦略:search(query, 0, pageSize) を繰り返し実行して、削除で検索結果が減ることを利用する(インデックスずれを避ける安全な方法)。実行時間を監視して、時間切れ直前に中断する。中断した場合は次回手動実行またはトリガーで再開可能。

    やってみた!Gmail のラベル「広告」が付いたメールで、2年以上前のものをゴミ箱へ移動する

    Gmail のラベル「広告」が付いたメールで、2年以上前のものをゴミ箱へ移動するスクリプトと運用上の注意を示します。

    /**
     * ラベル:広告 で 2年以上前かつスター付きでないスレッドをできるだけ一度でゴミ箱へ移動する
     * 注意: 実行時間制限により全件処理できない場合あり。まずはテストで確認すること。
     */
    function deleteOldAdsBestEffort() {
      var query = 'label:広告 older_than:2y -is:starred';
      var pageSize = 500; // 一度に取得する件数(500が実用上の上限)
      var startTime = Date.now();
      var maxRunMillis = 5.5 * 60 * 1000; // 安全マージンを取った実行上限(約5.5分)
      var totalMoved = 0;
      var loopCount = 0;
    
      while (true) {
        loopCount++;
        // 常に start=0 で取得する(削除で検索結果が減るためインデックスずれを避ける)
        var threads = GmailApp.search(query, 0, pageSize);
        if (!threads || threads.length === 0) {
          Logger.log('処理完了: 移動したスレッド数 = ' + totalMoved);
          break;
        }
    
        for (var i = 0; i < threads.length; i++) {
          try {
            threads[i].moveToTrash();
            totalMoved++;
          } catch (e) {
            Logger.log('移動失敗: index=' + i + ' error=' + e);
          }
    
          // 実行時間チェック
          if (Date.now() - startTime > maxRunMillis) {
            Logger.log('時間制限に近づいたため中断します。処理済み = ' + totalMoved);
            return;
          }
        }
    
        Utilities.sleep(300); // API負荷緩和のため短い待ち
        if (loopCount > 1000) {
          Logger.log('ループ回数上限に達しました。処理済み = ' + totalMoved);
          break;
        }
      }
    }
    

    実行前の必須チェック(必ずやること、広告しぼりが完璧ならそこまで神経質にならんでもいいけど)

    • テスト実行:まず older_than:7d や older_than:30d など短期間で動作確認する。

    • 除外条件:重要メールを誤削除しないよう -from:boss@example.com や -is:starred をクエリに入れる。

    • ログ確認:Apps Script の実行ログ(Logger.log)で何件処理したかを確認する。

    • ゴミ箱確認:Gmail の「ゴミ箱」を開いて期待通り移動しているか確認する。

    なぜ「完全に一回で終わらない」ことがあるか

    GAS の実行時間制限(約6分)。大量のスレッドがあると時間切れになる。
    API 呼び出しや Gmail の内部処理に時間がかかるため、1回で全件処理できない可能性がある。
    俺はgmailベテランだったので?何度かに分けた・

    トリガーで定期実行する方法もあるが、今回は一挙にやったので使わず


    トリガー画面を開く:エディタ左側の時計マーク(現在のプロジェクトのトリガー)をクリック。右下の「トリガーを追加」を押す。
    設定項目を選ぶ:


    実行する関数:プルダウンで選択。
    実行するデプロイ:通常は Head。
    イベントのソース:時間主導型 を選択(Gmail自動削除ならこれ)。
    時間ベースのタイプ:分/時間/日付/週/月 から選択。
    保存 を押して完了。
    注意点
    承認が必要:GmailApp を使う処理はインストール可能トリガーでしか動かない(初回は権限承認が出ます)。
    実行時間の幅:日付ベースのトリガーは指定した1時間枠の中で実行される(厳密な分指定はできない)。テストは短期間(例:older_than:7d)で。
    エラー監視:トリガー画面で実行履歴とエラー通知を確認し、失敗時はログをチェック。

    今回使わなかった設定

    エラーが出る、何これ?

    Google hasn’t verified this app The app is requesting access to sensitive info in your Google Account. Until the developer (m) verifies this app with Google, you shouldn't use it

    自分のアドレスなら自分の操作なので承認、。


    ■ 完全自動削除

    もし“完全放置”したいなら:

    • Gmail APIで「○○日以上→削除」スクリプト

    完全自動

    自分は怖いのでやりませんでした。

    -----------------------------------------------------------------------------------------

    #Gmail #メール整理 #断捨離 #ライフハック #生産性 #仕事効率化 #時短 #自動化 #Automation #AppsScript #GoogleAppsScript #GAS #メール断捨離 #InboxZero #整理整頓 #デジタル断捨離 #メール管理 #プロダクティビティ #習慣化 #生活改善 #テック #ガジェット #ツール紹介 #効率化 #時短術 #メール整理術 #受信トレイ整理 #メール掃除 #一括削除 #ゴミ箱整理 #ラベル整理 #フィルター設定 #自動振り分け #メルマガ整理 #プロモーション整理 #categorypromotions #スクリプト #定期実行 #トリガー設定 #OAuth #GCP #未検証アプリ #セキュリティ #バックアップ #復元 #注意喚起 #テスト運用 #運用ルール #メール断捨離祭り #週末断捨離 #大量削除 #メールクリーンアップ #デジタルミニマリズム #情報整理 #情報管理 #時間管理 #タスク管理 #Todoist #Notion #生産性向上 #習慣改善 #自己改善 #学び #学習法 #ライフデザイン #暮らしの工夫 #ミニマリスト #整理術 #メール自動化 #IFTTT #Zapier #連携 #GmailTips #メールテク #メール整理チャレンジ #メール断捨離術 #メール断捨離法 #メール断捨離プロジェクト #メール断捨離テク #受信箱ゼロ

     
     

    kuyu

     
     
    著者:金融業界から、メーカー系IT企業へ SE PM、そしてまた金融へ。オペレーションから金融営業、システム構築まで立ち回ってきたが最近はほとんど事務屋さんです。行政書士資格者。認定心理士。

    あなたへのおすすめ