一定期間より昔のGmailを自動的に削除する方法 (Google Apps Script を使う)

Google Apps Script を使って、一定時間より古い Gmail を自動的に削除するスクリプトを定期動作させる方法を書きます。

ちなみに、Google Drive の容量が不足している場合、Drive にメール以外の容量の大きなファイルがあるかもしれません。Google Drive にある容量の大きなファイルは、 https://drive.google.com/drive/quota こちらから一覧で見れます。

1.

Google Apps Script のページを開く。

https://script.google.com/

もしログインしてなければ、「Start Scripting」のボタンを押してログインします。

2.

左上の「新しいプロジェクト」のボタンを押します。

3.

上の「無題のプロジェクト」をクリックし、「古いGmailを削除」にプロジェクト名を変更します。

下記のスクリプト入力欄(コード.gs)にこのスクリプトを貼り付けます。

function deleteOldGmails() {
// 1年以上前のメールを削除
var deleteThreads = GmailApp.search('older_than:1y -is:starred');
Logger.log('該当スレッド: ' + deleteThreads.length + '件');
for (var i = 0; i < deleteThreads.length; i++) {
deleteThreads[i].moveToTrash();
if (i > 1000) {
Logger.log('1000件削除しました');
break;
}
}
Logger.log('終了');
}

上記スクリプトは、1年以上前に受信したメールでスターのついていないものを、1回で1000件まで削除するスクリプトです。

一度に多くのメールを削除しようとすると、スクリプトの実行がタイムアウトすることがあります。もしスクリプトがタイムアウトするようであれば、この数(1000)は適宜減らす調整をしてください。(500とか)

すべてのメールを削除対象とせずに、特定のラベルのみ対象にする場合は、下記のようなスクリプトとします。

function deleteOldGmails() {
var queries = [
'label:削除したいラベル1',
'label:削除したいラベル2',
'category:updates',
'category:forums',
'category:promotions',
];

for(var i=0; i < queries.length; i++){
var query = queries[i];
Logger.log('削除開始:' + query);
var criteria = '' + query + ' older_than:100d -is:starred'
var deleteThreads = GmailApp.search(criteria);
Logger.log('該当スレッド: ' + deleteThreads.length + '件');
for (var j = 0; j < deleteThreads.length; j++) {
   deleteThreads[j].moveToTrash();
}
Logger.log('' + query + 'の処理を終了')
}
}

こちらの場合は、「削除したいラベル1」「削除したいラベル2」「新着」タブ、「プロモーション」タブ、「フォーラム」タブの、100日以上古い、スターのついていないメールを削除するスクリプトとなります。

4.

スクリプトを貼り付けたら、保存ボタンを押してから実行ボタンを押します。

5.

Authorization required と出たら、「許可を確認」ボタンを押します。

「アカウントを選択してください」と表示されたら、自分のアカウントを選択。

「Googleアカウントへのアクセスをリクエストしています」と出たら、「許可」をクリック。

※ ちなみに、Gsuiteではなくフリーの gmail の場合、ここですぐ「許可」ボタンは押せません。
「詳細」→「メッセージダイアログ(安全ではないページに移動)」→「許可」と押していきます。

6.

スクリプトの実行が始まります。数分で終わります。

7.

実行結果は、「表示」→「ログ」で見れます。

8.

自動実行するために、トリガーを設定します。トリガーボタンを押します。

9.

右下の「トリガーを追加」ボタンを押します。

10.

イベントのソースを選択: 時間主導型

時間ベースのトリガーのタイプを選択: 時間ベースのタイマー

時間の感覚を選択(時間): 1時間おき

のように設定して、「保存」をクリック。

これで、一定時間ごとに Gmail の削除が動作するはずです。

現在の評価: 4.6

コメント

コメントを投稿
コメントするには TORICO-ID にログインしてください。
ログイン コメント利用規約
9ヶ月前ytyng
ご連絡ありがとうございます。間違っていました。修正しました。
2年前7ba3fb24
特定のラベルのみ対象にする場合、forが2段になっていますが、外側の変数が「i」で内側の変数も「i」ではうまく動きません。内側の変数を「j」に変えるとかする必要があります。

2回目インターン 23日目
インターンブログ 2023-03-31

2回目インターン 23日目こんにちは、塚原です。今日の作業はLP作成の続きとtwitterカードの画像についての処理を行っていました。LP作成の方は作って一応終わりかけていましたが、新たに導入予定のCMSを使ったLP作成ツールが早めに導入できそうということで、どちらを利用する方式に切り替えました。twitterカードの画像についての処理については一応それっぽいのはできたのですが、画像をbase64にエンコードしたりして処理を作っているので、場合によっては処理が重くなるので改善が必要です!そして今日はなんと!インターン最終日!次回からは正式に社員として働きます!前回のインターンを含めて約1ヶ月半くらいですが、技術的にも学生の頃より成長したと実感しています。また今日、退職の先輩に引き継ぎとして社員になった時に困らないように様々なことを教えてもらいました(多すぎて忘れそうだったのでちゃんとメモを取りました!)本当にありがとうございました!私のインターンブログはこれで最後になりますが、読んでくださった方はありがとうございました!次回からは正式に社員として頑張っていきます!

矢印キーを押すとスクロールしてしまう時(Excel対処法)
TORICO Tech ブログ 2023-03-30

こんにちは、品質管理係の渡辺です。

2回目インターン 22日目
インターンブログ 2023-03-29

2回目インターン 22日目

2回目インターン 21日目
インターンブログ 2023-03-28

2回目インターン 21日目

スマートロック、君はどれを選ぶ?
TORICO Tech ブログ 2023-03-28

これまで弊社ではさまざまなスマートロックを活用してきました。

2回目 インターン20日目
インターンブログ 2023-03-27

2回目 インターン20日目

2回目インターン 19回目
インターンブログ 2023-03-24

2回目インターン 19回目

サイトページの修正確認はスーパーリロード/ハードリロードで行いましょう
TORICO Tech ブログ 2023-03-24

ブラウザのキャッシュが消えない事って多くないですか?

2日目インターン 18日目
インターンブログ 2023-03-23

2日目インターン 18日目

2回目インターン 17日目
インターンブログ 2023-03-22

2回目インターン 17日目

2回目インターン 16日目
インターンブログ 2023-03-20

2回目インターン 16日目

2回目インターン 15日目
インターンブログ 2023-03-17

2回目インターン 15日目

nginx+FPMの環境のタイムアウトの解決法の備忘録
TORICO Tech ブログ 2023-03-17

前回、記事を書いたPHPをnginx+FPMの環境で、実際にwebアプリを作成。

2回目インターン 14日目
インターンブログ 2023-03-15

2回目インターン 14日目

2回目インターン 13日目
インターンブログ 2023-03-14

2回目インターン 13日目

2回目インターン 12日目
インターンブログ 2023-03-13

2回目インターン 12日目

2回目インターン 11日目
インターンブログ 2023-03-10

2回目インターン 11日目

2回目インターン 10日目
インターンブログ 2023-03-09

2回目インターン 10日目

2回目インターン 9日目
インターンブログ 2023-03-07

2回目インターン 9日目

PHPをnginx+FPMの環境で動作させる
TORICO Tech ブログ 2023-03-07

古いPHPのWebアプリの改修を行うことになった。

もっと見る