Google Apps Scriptで簡単!メールを自動振り分けする方法

メールが毎日たくさん来て整理するのが大変…。GASで自動で振り分けられたらいいのになあ…。
猫男
猫男
catman
catman
よし、catmanが「GASでメールを自動振り分けする方法」を教えてやろう!

GASでメールを自動振り分けする方法

GAS(Google Apps Script)を使えば、簡単にメールを特定の条件で自動振り分けできるようになる。まずは基本を押さえよう。

GmailAppを使ってメールを操作

GASでは、GmailAppクラスを使ってGmailを操作できる。メールを取得したり、ラベルを追加したりすることが可能だ。

 function getEmails() {
 var threads = GmailApp.search('label:unread');
 Logger.log(threads.length + " unread emails found.");
} 

GmailApp.search()を使用して、未読メールを取得するサンプルだ。

ラベルを追加してメールを整理

ラベルを使ってメールを分けることができる。以下のサンプルでGASを応用してラベルの追加が実現できる。

 function labelEmails() {
 var threads = GmailApp.search('label:unread');
 var label = GmailApp.createLabel('Unseen Emails');
 for (var i = 0; i < threads.length; i++) {
 threads[i].addLabel(label);
    }
} 

このスクリプトは未読メールすべてに ‘Unseen Emails’ というラベルを追加する。

GmailApp.search(‘label:unread’) で Gmail上のすべての未読メールを対象として検索し、GmailApp.createLabel(‘Unseen Emails’)でラベル付けしているな。

これなら、メールがきたらすぐにラベルでまとめられて便利だね!
猫男
猫男

 

GASでメール自動振り分け練習問題

以下の条件でメールを自動振り分けするGASを考えてみよう。

【問題】送信者が ‘team@example.com’ であるメールに ‘Team Emails’ というラベルを追加するスクリプトを書いてみよう。

 

 

練習問題の解答・解説


function categorizeTeamEmails() {
 var threads = GmailApp.search('from:team@example.com');
 var label = GmailApp.createLabel('Team Emails');
 for (var i = 0; i < threads.length; i++) {
 threads[i].addLabel(label);
    }
} 

GmailApp.search(‘from:team@example.com’)で特定の送信者からのメールスレッドを取得する。

GmailApp.createLabel(‘Team Emails’)で新しいラベルを作成して追加する。

for文で取得したメールスレッドに対して順次ラベルを付けていく。

これで僕のメールもバッチリ整理できそう!ありがとう、catman!
猫男
猫男
catman
catman
頑張れよ。GASで利用可能なメソッドと一緒に、メールの処理スキルもどんどん広げていこう!