GASでかんたん!メールを自動で既読にする方法

GASでメールを自動で既読にするなんてできるのかな…メールが溜まるとつい億劫で。
猫男
猫男
catman
catman
GASを使えば、メールを自動で既読にするのも簡単だ。その方法についてcatmanが教えてやろう。

GASでメールを既読にする準備

メールを自動で既読にするには、まずGASのスクリプトを書こう。GmailAppサービスを使うことで、メールのラベルを操作するところまで行ける。

GmailAppサービスでラベルを利用する

GmailAppのgetMessagesForThread()メソッドを使って、特定のメールスレッドのメッセージを取得する。

 function markEmailsRead() {
 var threads = GmailApp.getInboxThreads();
 for (var i = 0; i < threads.length; i++) {
 var messages = threads[i].getMessages();
 for (var j = 0; j < messages.length; j++) {
 messages[j].markRead();
 }
 }
} 

メールを取得し、繰り返し処理で一つずつ既読にしていく。

ポイントは最後のmarkReadメソッドだ。

Google Apps Script における Gmail メッセージ操作のメソッドのひとつで、特定のメールメッセージを「既読」にする能力を持っているぞ。

【応用】GASで特定のメールを既読にする準備

どのメールを既読にしたいか、条件を考えてみることが重要だ。

特定の条件でメールを操作する

条件を付けてGASでメールを操作することもできる。以下のコードは特定のラベルがついたメールのみを処理してくれるぞ。

function markLabeledEmailsRead() {
 var threads = GmailApp.search("label:yourLabelHere"); 
 for (var i = 0; i < threads.length; i++) {
 var messages = threads[i].getMessages();
 for (var j = 0; j < messages.length; j++) {
 messages[j].markRead();
 }
 }
} 

GmailApp.search()を使うと、検索条件に合致したメールを操作できるはずだ。

なるほど、特定のラベルだけを操作することができるんだね。これなら探してるメールも簡単に選べそう!
猫男
猫男

 

練習問題

以下のメールアドレスからのメールを自動で既読にするGASスクリプトを書いてみよう。

example@example.com

 

解答・解説

function markEmailsFromSenderRead() {
 var threads = GmailApp.search("from:example@example.com");
 for (var i = 0; i < threads.length; i++) {
 var messages = threads[i].getMessages();
 for (var j = 0; j < messages.length; j++) {
 messages[j].markRead();
 }
 }
} 

このスクリプトではGmailApp.search()メソッドによって、特定の送信者からのメールが特定される。

そして、取得したメールを繰り返し処理で既読にする。