GASでかんたん!メールを自動で既読にする方法
GASでメールを自動で既読にするなんてできるのかな…メールが溜まるとつい億劫で。

猫男

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()メソッドによって、特定の送信者からのメールが特定される。
そして、取得したメールを繰り返し処理で既読にする。