技術

Gmailで未読・既読管理しない

追記
このエントリを書いた直後にau、「迷惑メールフィルター」に新機能 – ケータイ Watchという記事を見つけてしまいました。
「迷惑メールおまかせ規制」という機能の精度に問題がなければ、ezwebのメールがプッシュ通知に対応した段階で、このエントリに書いたような事は一切必要なくなりますね。
しばらく「迷惑メールおまかせ規制」をオンにして様子を見てみようと思います。
↓はそのまま残しておきます。

今iPhoneでezwebメールのリアルタイム通知を実現するために、Gmailに転送してそちらのプッシュ通知を使ってるんですが、これがなかなかいい感じの副作用ももたらしてくれて気に入ってます。

Gmailには学習型のスパムフィルタ機能があるので変なメールがプッシュされてこなくて助かるというのがその副作用な訳です。
さらにこれを一歩進めて、iPhone用のezwebメールのアカウントがIMAPで提供されている事を利用して、PCでもThunderbirdのような学習型スパムフィルタを搭載したMUAを随時立ち上げておき、自動的にスパムを隔離するようにしています。
そうするとiPhoneのほうでも、Gmailのメールボックスはもちろんezwebメールのメールボックスでも日常的にスパムを目撃する事が激減してとても快適な訳です。

ちょっと話はそれますが、3月からiPhone用のezwebメールがプッシュ通知対応するなんてニュースが数日前話題になってました(月単位のスケジュールは既に去年末の段階でauから公表されてたので私は特に気にしてもいませんでした)が、学習型フィルタを通す前のメールをプッシュされても鬱陶しいので私は使わないつもりです。

しかし以上のような使い方で一つ鬱陶しいなと思うのが、Gmailの未読・既読管理です。
メールを送信するときは、ezwebのメールボックスからメールを選択してそれに返信するやり方を主に使っていて、Gmailのほうはプッシュ通知を受け取ることだけをその目的としてるので、Gmailのほうに未読メール(ezwebメールの方で確認済み)がじゃんじゃん溜まっていってしまうわけです。

まぁ気にしないという運用方法もありかなとは思うんですが、iPhoneのメールアプリのアイコンに表示される未読数のバッジが意味をなさなくなるのも、私の用途的には受け入れがたく。

調べてみたんですがGmailにはメインのフォルダをハナから未読・既読管理しないという設定は無さそうなので、未読を既読にするだけのクライアントをPythonで書きました。

こやつをcronなどで定期的に自動実行する、という用途を想定しています。
その際はUSERとPASSWORDにあらかじめ値をセットしといてください。
じゃないと入力待ちで止まるはずです。
1回の実行でその時点の未読メールを全て既読にするので、定期実行じゃなくとも「長い間使ってて未読がたまってきたから一度それをクリアしたい。けど数が多いからMUAが固まる」なんてときでも手動実行で便利に使えるかと思います。
あと、GmailでしかテストしてないのでGmail向けを謳ってますがコード自体はIMAP4向けに書いてるので他のサーバにも使える場合もあると思います。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

'''
Gmailの未読を既読にする
'''

import imaplib
import getpass

HOST = 'imap.gmail.com'
USER = ''
PASSWORD = ''


def Unseen2Seen():
    user = USER if USER else raw_input('Gmail Username: ')
    password = PASSWORD if PASSWORD else getpass.getpass('Gmail Password: ')
    imap = imaplib.IMAP4_SSL(HOST)
    imap.login(user, password)
    try:
        imap.select()
        status, id_list = imap.search(None, 'UNSEEN')
        for msgid in id_list[0].split(' '):
            status, result = imap.store(msgid, '+FLAGS', '\\SEEN')
            print result[0]
    finally:
        imap.logout()

if __name__ == "__main__":
    Unseen2Seen()

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です



※画像をクリックして別の画像を表示

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください