Gmail クリーンアップツール (gmail-cleaner)

Tool

概要

gmail-cleanerは、Gmailアカウントの受信トレイを手早く整理するためのWebベースGUIツールです。主に「一括登録解除(bulk unsubscribe)」「特定送信者のメール一括削除」「メールの一括既読化」といった操作をワンクリックで実行できる点が特徴です。デザインはプライバシー重視で、サブスクリプションや外部へのデータ送信を行わず、処理はユーザーのローカル環境(もしくはデプロイ先の環境)で完結します。Pythonで実装され、Gmail APIを通じたOAuth2認証で安全にアカウントへアクセスします。シンプルなUIと自動化の組み合わせで、定期的なメールの断捨離作業を効率化します。(300字程度)

GitHub

リポジトリの統計情報

  • スター数: 57
  • フォーク数: 2
  • ウォッチャー数: 57
  • コミット数: 5
  • ファイル数: 10
  • メインの言語: Python

主な特徴

  • 一括登録解除(List-Unsubscribeヘッダーや本文中の解除リンクを利用)
  • 送信者単位でのメール一括削除(検索→一括処理)
  • メールの一括既読化(ラベル変更による既読フラグ操作)
  • プライバシー重視:ローカルでトークン管理しデータ収集なし

技術的なポイント

gmail-cleanerはGmail APIを中核に据えた構成で、OAuth2経由の認可フローを用いてユーザーのメール操作を行います。典型的な動作は次のようになります:まずアプリがOAuth2でユーザーの許可を取得し、発行されたアクセストークン/リフレッシュトークンをローカルに保存(サーバ上でデプロイする場合も同様に配置)して後続のAPI呼び出しに利用します。メールの抽出はGmailの検索クエリ(from:、label:、is:unread など)を用いて行い、APIのmessages.list/messages.getでメッセージを取得します。

登録解除(unsubscribe)機能は、HTTPヘッダーのList-Unsubscribeや本文中の「unsubscribe」リンクを検出して自動でアクセスする仕組みを採るのが一般的で、本リポジトリも同様のアプローチを想定しています。サーバ側で外部サイトへアクセスして解除処理を実行するケースでは、GET/POSTリクエストのフォローやフォーム送信の再現が必要になり、成功率は送信元の実装に依存します。完全自動化が難しい場合は、解除リンク一覧をGUIで提示してユーザーに確認させる機能を持たせるのが安全です。

一括削除や既読化はGmail APIのbatchやmodifyエンドポイントを使って、ラベルの追加・削除(例:INBOXを外す、TRASHへ移動、または既読ラベルの付与)で実現します。大量処理ではAPIのレートリミットに注意し、バックオフやページング(nextPageToken)を適切に扱う必要があります。Procfileが含まれているため、HerokuなどのプラットフォームへデプロイしてWebアプリとして運用する想定も読み取れますが、READMEが強調する「ローカルで完結する」方針に従えば、ユーザーの環境で直接実行してトークンや認証情報を自分で管理するのが推奨です。

セキュリティ面では、最小権限のOAuthスコープ(読み取り+操作に必要な最小限)を選ぶこと、トークンを暗号化または権限のある場所に保管すること、そしてサードパーティの解除エンドポイントにアクセスする際のCSRFや認証挙動に留意することが重要です。MITライセンスのため改変・配布が容易で、用途に応じたカスタマイズやCI/CD経由での展開がしやすい点も利点です。(約700字よりやや拡張して説明)

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • Procfile: file
  • README.md: file
  • demo.gif: file
  • gmail_api.py: file

…他 5 ファイル

使い方(概略)

  1. GitHubリポジトリをクローン
  2. Python 3.8+ の仮想環境を用意して依存をインストール
  3. Google Cloud ConsoleでOAuthクライアントを作成し、credentials.jsonを取得
  4. アプリを起動してブラウザで認証を行い、Gmailへアクセス許可を付与
  5. GUIから検索条件を指定して一括処理を実行

(リポジトリ内のREADMEに詳細手順・注意事項が記載されています)

まとめ

プライバシー重視の手軽なGmail整理ツール。個人使用に最適。 (約50字)

リポジトリ情報:

READMEの抜粋:

📧 Gmail Bulk Unsubscribe & Cleanup Tool

A free, privacy-focused tool to bulk unsubscribe from emails, delete emails by sender, and mark emails as read. No subscriptions, no data collection - runs 100% on your machine.

Python Gmail API License

✨ **No Subscripti…