Googleドライブの容量が、無料枠を超えそうだったので、色々と削除しました。

しかし、なかなか減らないので、なんでかな

調べて見ると、Gmailの容量も、加算されていることがわかりました。

まー、20年分ぐらいは、消さずにほったらかしだったので、たまりますよね

ということで、Gmailの削除作戦を実行することにしました。


とりあえず、今のメールをバックアップしてから削除することにしました。

いらないけどね

どうやるのか、わからなかったので、Googleといえば、Geminiなので、聞いてみたところ、Takeout なるサービスでデータをエクスポート出来るらしいです。

 

とりあえず、Gmailだけチェックしてエキスポートしてみたところ、数日後 Gmailにデータが届いていました。


そんなこんなで、エキスポートされたデータをどっかで、見れるようにしておきます。

候補としては、Thunderbirdですね。

Outlookとかでも良さそうですが、最近、仕様変更されて何がなんだかわからなくなってますね。

で、エクスポートされたファイルは、zipなので、7zipとかで適当に解凍します。

その中身は、mbox形式のようで、直接、Thunderbirdでは取り込めません。

なので、ImportExport Tools NG とかいう、アドオンをインストールしてインポートします。

ローカルフォルダに適当なフォルダを作成してmboxファイルをインポートします。

※ちなみに、Linuxだと、mb2mdコマンドなるもので、maildir形式に変換出来ます。maildir形式にすれば、Postfixやdovecotで直接管理出来ますね。

めちゃめちゃ時間がかかるし、全部同じフォルダに入ってしまうので、Thunderbirdが激遅になります。

なので、年度別にフォルダを作って仕分けしました。

メッセージフィルタなる機能を使うことで出来るようです。


さー、ここからが本番ですよ

バックアップしたので、削除作戦です

で、ちまちま、PCでメールを選択してやるのかと思い、1ページづつ選択して削除しようとしましたが、当然ながら30万件ものメールを簡単に削除出来ません。

Googleさんは、ネット界の重鎮ですので、そんな間抜けなことはさせません。

Google Apps Scriptなる代物で、一気に削除可能なのです。

Google開発者さん達は、お馴染みのスクリプト環境ですが、素人さん達に扱えるわけがない代物です。

しかし、大量のメールを削除するには、ここを克服しないと先に進めませんので頑張りましょう。

まずは、Google Driveにログインして、適当な場所(共有されているような場所は、やめた方が良いよ)にGoogle Apps Scriptを作成します。

共有に関する注意があるので、出きれば理解してもらってから作成します。

普通の人は、共同編集者なんて、作ってないだろうから無視でも良いですけど、会社とかのアカウントだと有りうるので管理者さんとかに聞いてみて下さいね。

とりあえず、上のようにスクリプトの中身を書いてみます。

before:の後の西暦は、この西暦以前のメールを削除することになるので、消したいメールの期間を考慮して編集して下さい。

この場合、2015年12月31日より過去のメールを削除することになります。

 

左上がスクリプトの名前で、わかりやすい名前にしましょう。ここは、ドライブにそのまま表示される名前にもなります。

その下は、関数の選択(deleteOldEmails)になります。

その下が、スクリプトの関数を記載するエリアですね。

ここに定義した関数が、上の選択肢として選べるようになります。

 

function deleteOldEmails() {
  var block = 500
  var waitmsec = 500
  var searchQuery = 'before:2015/12/31';
  var threads = GmailApp.search(searchQuery, 0, block);

  //消えるまでループ
  while (threads.length > 0) {
    for (var i = 0; i < threads.length; i++) {
      threads[i].moveToTrash();
    }
    Utilities.sleep(waitmsec); // 待機
    threads = GmailApp.search(searchQuery, threads.length, block); // 次のblockを取得
  }
}

このスクリプトでは、Gmailにアクセスする必要があるので、サービスにGmailを追加します。

スクリプトを書いて、Gmailサービスを追加完了したとこで、保存しましょう。

保存しないと消えちゃいますよ。

次に、スクリプトの実行を承認する為にデバッグを行います。

デバッグとは、スクリプトが正しく動作するか確認する為に、実験的に動作させて思った通りに動作するか確認する作業です。

デバッグすると、メール削除を行うことになるので、気をつけましょう。

デバッグを行うとスクリプトに権限を与える作業に入ります。

作成したスクリプトが、自身のGmailへアクセスすることを許可します。

ここで続行すると、スクリプトが動作しメール削除し始めます。

 

実は、スクリプトは、一度実行しても5000行程度しか削除出来ません。

これは、Googleさんがスクリプトの動作範囲に制限をかけているんですね。

なので、大量のメールを削除しようとしても途中で中断させられてしまいます。

ということは、スクリプトは、複数回実行する必要があり、結局、面倒ですよね。

なので、一定の時間間隔で実行させることで、数日間に渡り削除処理をさせることで、対象のメールを削除していきます。

この機能は、トリガーで時間間隔での実行を指定します。

この設定だと、8時間毎に永遠に起動し続けます。

なくなるまで、実行するので、とりあえずOKですね。

削除したいメールがなくなったら、このトリガーを削除しましょう。


さー、これで、ちょっとづつですが、目標のメール削除が遂行されていきます。

で、削除したメールは、ごみ箱に入っていきます。

ほっとおいても30日後には消えますが、手動で削除も可能です。

すぐに空にすれば、一気に容量が削減されるので、安心ですね。

 

Joomla templates by a4joomla