Web版のGmailはメールを一括して削除するときに最大でも1回につき100件までしか削除できません。そこでGmailのAPIを使って大量のメールを一括削除するPythonスクリプトを作りました。
前準備
Pythonの準備
まずは前準備としてPythonがインストールされていることと、さらに以下のモジュールを追加でインストールします。
pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
Googleの準備
Google Cloud ConsoleにアクセスしてGmail APIを有効にします。
1.Google Cloud Console にアクセス
2.新しいプロジェクトを作成
3.「APIとサービス」➔「APIライブラリ」で「Gmail API」を有効にする。
4.「OAuth 2.0 クライアントID」を作成(アプリの種類 ➔「デスクトップアプリ」を選択。
5.「APIとサービス」➔「認証情報」➔「OAuth 2.0 クライアント ID」の「⏬OAuthクライアントをダウロード」ボタンを押下し、ファイル名を「credentials.json」としてファイルをダウンロード。
6.ダウンロードしたファイルをPythonスクリプトと同じフォルダに置く。
プログラムをダウンロードして実行
ダウンロード
GitHubにプログラムをアップしました。下記のサイトにアクセスしてPythonのプログラムをダウンロードしてください、
初回実行
Gmail削除プログラムを初回に実行すると、Googleからの権限認証のための画面が開きますので、「今日共有する際に、Googleアカウントのデータに対する継続的なアクセス権をgmail delete(Pythonのスクリプト名)に付与します」のチェックボックスにチェックを入れて、続行ボタンを押下します。
コマンドの使い方
使い方
python gmail-delete.py [display|delete|count|dispquery] [query=’検索条件’]
コマンドラインのパラメータ
display = 対象のメールを表示
delete = メールを削除
count = 対象のメールの数を表示
dispquery = クエリ文字列を表示して終了
query = クエリー文字列
クエリー文字列の例 ① 指定日以前
in:anywhere before:2025/01/01
in:anywhere = ゴミ箱とスパムは除くすべてのフォルダ
before:2025/01/01 = 指定日付以前
クエリー文字列の例 ② 指定日以降
in:anywhere after:2025/01/01
in:anywhere = ゴミ箱とスパムは除くすべてのフォルダ
after:2025/01/01 = 指定日付以降