Gmail添付ファイルクリーナーを作った(Windows専用) ― “手作業”を自動化した話

2017年に「Gmailの添付ファイル削除方法」という記事を書きました。

当時のおすすめは、Thunderbirdをインストールしてクイックフィルターでサイズの大きいメールを探し、1通ずつ添付ファイルを削除していく、という方法でした。

本文はそのまま残って添付だけ消せるのが利点で、今でもこの方式自体は間違っていないと思っています。

ただ、実際に自分で使い続けてみると、地味にしんどい点がありました。

何が具体的に面倒だったか

  • Thunderbirdで添付を削除しても、Gmail上には「添付あり版」と「添付なし版」の2通が残ってしまいます。
  • そのため、Thunderbird側での操作(添付削除)とGmail側での操作(重複メールの削除)を、画面を行き来しながら別々にやる必要がありました。
  • しかも1通ずつこの2段階を繰り返すので、件数が多いと現実的に終わりません。

要は、「本文を残して添付だけ消す」という発想は良かったものの、2つの画面をまたいで手を動かし続けないといけない実行コストの方が重かったです。

作ったもの

そこで、IMAPで直接Gmailに接続して、対象フォルダを指定するだけで添付ファイル付きメールを一括処理するWindowsアプリを作りました。

Gmail添付ファイルクリーナー
※最新の画面ではありませんが、おおよそこんな感じです。

今回、Windows限定なのは、WEB経由だと、作者や第3者が閲覧できる可能性を排除するため、OS上の専用アプリとしました。需要があれば、他のOS用にも作ろうと思います。

 

やっていることはシンプルで、

  • 対象フォルダの中から添付ファイル付きのメールを検索してリストアップします
  • チェックを入れたメールについて、添付ファイルを取り除いた「本文だけ版」を同じ場所に作り直します
  • 添付ファイル付きの元メールは、指定した移動先フォルダ(ゴミ箱的な保管場所)に退避します

という一連の流れを1つの画面・1回の操作にまとめました。

Thunderbird+Gmailの2画面を行き来する必要はなく、退避先も自分で決められるので「重複メールをどこかで探して消す」という作業自体がなくなります。

消した跡を残す

添付ファイルを削除すると、本文の先頭に

Deleted: 見積書.pdf (320.5 KB)
Deleted: 写真.jpg (1200.0 KB)

という注記が枠付きで挿入されるようにしました。何をいつ消したか、後から本文を見るだけでわかるようにするための工夫で、Thunderbirdが添付を削除したときに「Deleted: ファイル名」と表示してくれる挙動から着想を得ています。ただしThunderbirdのそれはローカル表示上のプレースホルダーで、こちらは実際にGmail上のメール本文に書き込まれた記録なので、どの端末・Web版Gmailから見ても同じように残ります。

日本語・英語の切り替え

UIとログメッセージを日本語・英語で切り替えられるようにしました。自分しか使わないツールなら要らない機能ですが、こういう地味に便利なツールは世界中の誰かも同じ悩みを抱えていておかしくないので、外部ファイルで言語を切り替えられる作りにしてあります。

現状

一通りテストを終え、あとは細かい微修正を残すのみの状態です。近日中に一般公開のテストを行う予定で、準備ができ次第このページにダウンロードリンクを追加します。

 

~使い方~

事前準備:Gmailのアプリパスワードを発行する

このツールはIMAPで直接Gmailに接続するため、通常のGoogleアカウントのパスワードではなく「アプリパスワード」が必要になります。

  1. Googleアカウントで2段階認証を有効にしておきます(未設定の場合はアプリパスワードが発行できません)。
  2. Googleアカウントのセキュリティ設定 を開きます。
  3. 「アプリパスワード」を検索・選択します。
  4. 名前を適当に入力(例:imap_attachment_cleaner)して「作成」を押します。
  5. 表示された16桁のパスワードをコピーし、このツールのパスワード欄に貼り付けます。

操作方法

  1. 対象フォルダ(添付ファイルを探したいGmailのフォルダ)と、移動先フォルダ(添付ファイル付きの元メールの退避先)を指定します。移動先を空欄にすると、元メールは退避せず完全削除になります。
  2. 「1. この内容で登録」で、この接続設定をプロファイルとして保存します。
  3. 「2. 接続」でGmailに接続します(パスワード欄には上で発行したアプリパスワードを入力します)。
  4. 「3. 一覧取得」を押すと、対象フォルダ内の添付ファイル付きメールが検索され、一覧に表示されます。件数が多い場合は「何件見つけるまで検索するか」を先に指定しておけます。
  5. 一覧から、添付を削除したいメールにチェックを入れます。
  6. 「4. 選択した添付を削除」を押すと、チェックしたメールについて添付ファイルを取り除いた本文だけの版が作られ、添付ファイル付きの元メールは移動先フォルダへ退避されます(未設定なら削除されます)。
Gmail添付ファイルクリーナーを作った(Windows専用) ― “手作業”を自動化した話