2013/02/04

Pythonを使ってIMAPメールボックスのクォータ状態を表示する方法

Thunderbirdだと標準でIMAP QUOTAの情報を表示する機能がメールクライアント上に実装されているのだが、Sylpheedだとそういう機能がないのでスクリプトを書いてみた。
CentOS上のPythonと、Windows上のIronPythonで動いていることを確認した。

■IMAPのクォータを取得するPythonスクリプト

#!/usr/bin/python

import getpass, imaplib, re

print("Input your password for USERNAME@mail.example.com")
username = "USERNAME"
password = getpass.getpass()

mbox = imaplib.IMAP4("mail.example.com")
mbox.login(username, password)
quota = mbox.getquotaroot("INBOX")

print(quota)

match = re.match('.* (\d+) (\d+).*', quota[1][1][0])
used, total = match.groups()
used, total = int(used), int(total)
print("Quota Used: " + str(100.0*used/total) + "%")

mbox.logout()

print("\n")
raw_input("Please input any key...")

imaplib::getquotarootの戻り文字列は多分にIMAPサーバの仕様による気がするが、、、まぁ上記の正規表現でうまいこと動いている気がする。
# まぁThunderbirdでどう実装されているか見れば自明なんだが。。。