Gmailを自動削除、GoogleAppsScriptで作ってみた



Gメールに届いたメールを読んで削除せずに放置する癖があり、忘れたころに削除すると毎回すごく面倒なので、自動削除する方法を調べました。

すると、GoogleAppsScriptを使うと自動でゴミ箱に移動させる方法がありました。

自動でゴミ箱に移動してくれれば30日後には勝手に削除されるので大変ありがたいです。

しかも、GoogleAppsScriptは無料で使えます。


GoogleAppsScriptでGmailの自動削除の作り方


①Googleスプレッドシートを開く

②シート名を「メール自動削除」に変更

③ツール→スクリプトエディタを開く

「現在、ファイルを開くことができません。」と表示された場合は、複数のアカウントでログイン状態になっているので1度全てログアウトして、Googleスプレッドシートを開いたアカウントだけでログインしましょう。

④以下のコードを書き込む

function myFunction(){
  var deleteThreads = GmailApp.search('label:ラベル名 older_than:10d -is:starred');
  Logger.log('該当スレッド: ' + deleteThreads.length + '件');
  for (var i = 0; i < deleteThreads.length; i++) {
    deleteThreads[i].moveToTrash();
  }
  Logger.log('終了');
}

・label:ラベル名→ラベル名は削除したいラベルを入力、全メールが対象のときはlabel:ラベル名を削除
・older_than:10d→いつより前のメールを削除するか選ぶ、10dは10日前
・-is:starred→スター付ではないメール

⑤保存を▶を押して実行する。

保存するときにプロジェクト名を入力する。

※ココから先はポップアップをしっかりと読みましょう。

⑥「承認が必要です」がでたら、許可しアカウントを選択する。

⑦「Googleアカウントへのアクセスをリクエストしています」がでたら、「詳細」をクリックし「メッセージダイアログ(安全ではないページに移動)」→「許可」の順で実行する

Gsuiteアカウントを持っていたら、「Googleアカウントへのアクセスをリクエストしています」→「許可」の順で実行する。

⑧実行が終わったら「表示」→「ログ」で実行結果を確認。

⑨実行マークの左横にある時計?マークを押してトリガーを追加。

⑩イベントのソースを「時間主導型」、時間ベースのトリガーのタイプを「日付ベースのタイマー」、時刻は好きな時間を選びます。

⑪保存して完了。

削除できていないと思ったら


自動削除のコードは合っているはず、なのに削除できていない。

ログでは削除できたことになっている、なのに削除できていない。

何回やっても「該当スレッド:0件」と表示される。

そんな人はコチラをご覧ください。

Googleスプレッドシートを経由しなくても作れる!?


GoogleAppsScriptはGoogleスプレッドシートを経由しなくてもGoogleドライブから作れるみたいです。

実際に作っていないので、何とも言えませんが...。
おすすめ