Gmailの添付ファイル整理を自動化したら、案件の全体像まで見えるようになった
仕事のメールでは、資料が次々に添付され、パスワード付きzipの解凍パスワードが別メールで届くことがあります。さらに、やり取りが複数のスレッドに分かれると、経緯を追うだけでも一苦労です。
私はファイル整理が得意ではないこともあり、次の作業をまとめて自動化しました。
- Gmailから添付ファイルを保存する
- 別メールのパスワードを探してzipを展開する
- 案件のメールを時系列で一つの文書にまとめる
- ローカルAIで現在の状況を要約する
Gmailのラベルを付けるだけ
処理の入口はGmailのラベルです。対象メールを見つけると、添付ファイルと本文を、受信日時や件名が分かるフォルダへ保存します。
zipのパスワードがまだ届いていない場合は、次回の自動実行で再確認します。人が受信箱を何度も確認する必要はありません。日本語ファイル名の文字化けや、危険なパスを含むzipにも対応しました。
分かれたメールを一つにまとめる
案件のメールは、スレッドが分かれていても一つのMarkdownへ時系列で集約します。日時、件名、送受信者、本文をまとめて読めるため、過去のやり取りを探し回らずに済みます。
新着メールだけを追記するので、定期実行しても同じ内容は重複しません。原文が一つにまとまるだけでも、案件の経緯を追いやすくなりました。
要約を読めば、今の状況が分かる
長くなった原文は、ローカルで動かすOllamaを使い、次の項目に要約します。
- 案件概要と現在の状況
- 決定事項と未決事項
- 担当者、期限、次の対応
- 重要な経緯
これまでは複数のメールや添付ファイルを行き来しないと全体像がつかめませんでした。今は要約ファイルを読むだけで、何が決まり、何が残っているのかをすぐ確認できます。
原文と要約は分けて保存しているため、必要なときは元のメールに戻って事実を確認できます。また、Ollamaは同じLinux内で動かし、メール本文を外部の生成AIサービスへ送りません。
15分ごとに自動実行
処理はcronで15分ごとに実行します。普段の操作はGmailへラベルを付けるだけです。添付ファイルの保存、zip展開、メール集約、要約更新まで自動で進みます。
主にPython、Gmail API、pyzipper、Ollama、cronを使いました。設定時にはdry-runで対象メールと保存先を確認できるようにしています。
まとめ
この仕組みで、苦手だった添付ファイルの整理、面倒なパスワード付きzipの処理、分断されたメールの確認がほぼ不要になりました。
特に役立っているのは要約です。案件の全体像と現在地がすぐ分かり、メールを追う時間ではなく、次の対応に時間を使えるようになりました。