世界のことを知りたい

読書習慣を付けたい。…マンガも本だよね?

Gmail/Inbox で不要なメールを自動削除する

Gmail でメールを高度に検索して抽出しメールを削除できることは分かったのですが、毎回この検索を行ってメールを削除するのは面倒です。

自動化したい!

楽したい!

寝ていたい!

ということで調べてみるとスクリプトを書けば出来るようです。

このあたりを参考にやってみました。

参考にしたサイトよりも手順を簡単にしています。コードも簡単にしています。

大まかな流れ

  1. Gmail で検索する文字列を作る。
  2. その文字列を使ってスクリプトを作って保存。
  3. スクリプトの実行に許可が要るので許可する。
  4. トリガーを設定する。

やってみましょう。

Gmail で検索する文字列を作る

まずは Gmail で削除したいメールを抽出するための検索を行います。

これについてはこちらに書きましたので参考にして下さい。

スクリプトを作る

スクリプトは Google の Apps Script というところで作れます。Google Drive のスプレッドシートから作る方法もありますが、一手間多いので Apps Script にアクセスした方が楽です。

Apps Script – Google Apps Script

このページは今は英語ですが将来的には日本語になっているかもしれません。このページにある「Start Scripting」を押します。

f:id:arityk:20161207171932j:plain

そうするとすぐにコードを入力できる画面となります。

f:id:arityk:20161207172121j:plain

今回はメールを抽出したときに使った文字列をそのまま使うことで楽にスクリプトを作ります。

ここでは Gmail の検索時に使った例と同じ例を使ってみます。もう一度検索方法について書いた投稿を貼っておきます。

ここで作った検索文字列はこれ。

older_than:6m has:attachment label:AAA larger:2M -is:starred

ではこれを使ってコードを書きます。

function cleanUp() {
  var searchTerm = 'older_than:6m has:attachment label:AAA larger:2M -is:starred';

  var threads = GmailApp.search(searchTerm);
  for (var i = 0; i < threads.length; i++) {
    threads[i].moveToTrash();
  }
}

コード入力画面の文字を全て消し、上のテキストをコピーして貼り付け。その後に自分で作った検索文字列を「searchTerm = 」に続く「'」と「'」の間に入れて下さい。

上では例で使った検索文字列を入れてあります。変えるのはここだけ。

f:id:arityk:20161207172936j:plain

こんな感じになります。

左上にあるボタンでスクリプトを保存しましょう。名前はお好きにどうぞ。

f:id:arityk:20161207175737j:plain

保存したスクリプトは自分の Google Drive に保存されています。

作ったスクリプトを Gmail で承認させるために一回、実行するかデバッグしてみます。

「実行」すると検索に合致したメールがゴミ箱に行ってしまうため、ここで何か失敗があると困るかもしれません。「デバッグ」の方が安全です。

でも好きな方をどうぞ。どうせ後で実行してみるわけですし。

「▶」のボタンを押して実行するか、その隣のボタンでデバッグします。

f:id:arityk:20161207175910j:plain

すると承認のためのポップアップが出ます。

f:id:arityk:20161207173616j:plain

f:id:arityk:20161207173622j:plain

私が付けた名前が「Gmail_autoCleanUp」というファイル名なので、メッセージにそう出ています。

許可すると元の画面に戻ります。

さてここで、デバッグした人は一度実行してみます。先ほどの手順で実行した人はもう実行されています。

Gmail か Inbox を開いて大丈夫そうか確認して下さい。狙ったメールはゴミ箱に入っていますか?

大丈夫そうなら自動実行の設定に進みます。

自動実行のトリガーを作る

では作ったスクリプトをいつ実行させるか決めます。トリガーのボタンを押します。時計っぽいボタンです。

f:id:arityk:20161207174916j:plain

ここで自分が好きなように、実行する周期を設定して下さい。

f:id:arityk:20161207175001j:plain

上のようにすると「毎日」、「午前4~5時」に、「検索文字列にヒットしたメールをゴミ箱に移動する」という流れが自動実行されることになります

メールはゴミ箱に移動されるので30日はメールが削除されません。

終わり

いかがでしたか。結構簡単だったと思いますが、まったくコードを書いたことがない人だと難しかったかもしれません。

でもこれで自動的にメールがゴミ箱に行きます。楽できますね!

ちなみに、自分で何かラベルを作っておいて、自動削除したいものにそのラベルを付け、スクリプトで検索して自動的に消すという方法も良いかもしれません。

うまくアレンジして下さい。

許可したアプリケーションの削除

ちょっと気になったので調べてみました。

もし、作ったスクリプト(アプリケーション)の Gmail への承認を取り消したい場合、Google アカウントのセキュリティ管理にあるページで管理できます

自動削除をやめるなら、ここからアプリケーションを削除しておいた方がセキュリティ上、安心です。