Google Apps Script を使って、一定時間より古い Gmail を自動的に削除するスクリプトを定期動作させる方法を書きます。
ちなみに、Google Drive の容量が不足している場合、Drive にメール以外の容量の大きなファイルがあるかもしれません。Google Drive にある容量の大きなファイルは、 https://drive.google.com/drive/quota こちらから一覧で見れます。
1.
Google Apps Script のページを開く。
もしログインしてなければ、「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 の削除が動作するはずです。