PythonでIMAP
PythonでIMAPに接続してみた。
基本はimaplibを使う。そのあとどうするかは付属ドキュメントとRFC3501を斜め読み。あるフォルダにあるメールのアドレスを抜き出すプログラムを書いてみた。ほんとはHaskellでやりたかったけどライブラリがなかったので妥協…。getpassを使ってパスワードは毎回入力する。
#!/usr/bin/pythonimport imaplibimport getpassimport email.parserimport rfc822HOST = 'imap.example.com'USER = 'example'M = imaplib.IMAP4_SSL(HOST)passwd = getpass.getpass()M.login(USER,passwd)status, data = M.select('INBOX.foo')if status != 'OK':raisetyp, data = M.search(None, 'ALL')fromtable = {}for num in data[0].split():typ, ret = M.fetch(num, '(RFC822.HEADER)')header = ret[0][1]p = email.parser.Parser()msg = p.parsestr(header)print rfc822.parseaddr(msg['from'])[1]M.close()M.logout()