【GAS】特定のメールを削除する(ソースコードあり)
毎日、たくさんのメールを受信していますが、見ていないメールも多々あり、毎日削除するのはめんどくさい。かといって、ドバっと削除してもまた増えるメールたち。そんなわけで、メールを削除するGASを作ってみました💡これをトリガーに登録すれば、メール自動削除ツールの完成です😜
特定のメールを削除するGAS
冒頭で触れたとおり、手でメールを削除するのがめんどくさいので、GAS作りました💡
ざっくりとソースコードをご紹介。
/**
* 特定のメールを削除する
*/
function trashGmail() {
const today = new Date(); /* 今日の日付を取得 */
var trashMailAddr = "abc@mail.com"; /* 削除したいメールのアドレスを指定 */
var trashPeriod = 30; /* 何日前のメールを削除するのか、何日前を指定できるようにした */
var trashSubject = "【事例】"; /* 削除したいメールのタイトルに含まれる文字を指定できるようにした */
var beforeDate = new Date(today.getFullYear(),today.getMonth(),today.getDate()-trashPeriod);
var searchCondition = 'from:"'+trashMailAddr+'" label:Inbox before:'+transDate(beforeDate)+' subject:"'+trashSubject+'"';
var threads = GmailApp.search(searchCondition,0,50);
for(var j = 0;j < threads.length;j++) {
var msgs = GmailApp.getMessagesForThread(threads[j]);
for(k = 0;k < msgs.length;k++) {
if(msgs[k].isStarred()) {
/* スターがついたメールは削除しない */
continue;
}
if(msgs[k].isInPriorityInbox()) {
/* 重要マークがついたメールは削除しない */
continue;
}
/* メール削除 */
msgs[k].moveToTrash();
}
}
}
黄色の部分を変えてGASを実行すると、特定Gmailのメールが削除されるのでお試しあれ💡
50スレッドまでしか取得しない設定にしているので、51以上のスレッドを処理したければ、青色のとこにある50をもっと大きな数字にしてもらえればと思います☺️MAXは500のようです💡
なお、わたしは黄色の部分をスプレッドシートから取得して、複数メールアドレスを削除するようにしました😜ここにそのソースコードも書くと、ちょっと複雑になるので、その部分は端折りました😅機会があれば、スプレッドシートから取得した情報でメールを削除、という組み合わせの記事も書こうかな😁
GASで地味な作業をどんどん自動化していきたいところです😉