10.12.2011

mogmail with Python version 1.1

Python版mogmail バージョン1.1


以前作成した、こちらのスクリプトを改良。
http://mogproject.blogspot.com/2011/04/pythonmogmail.html

・ヘッダを得るだけなのに、retr() を行うのは冗漫だった。top(which, 0) で十分。
・Fromにダブルクオーテーションが含まれているとBase64デコードに失敗していた。
 事前に除去する。


mogmail.py

#!/usr/bin/env python
# Copyright (c) 2011 Mog Project. All rights reserved.
# Version: 1.1, Updated: 2011/10/12

import poplib
import email
from email.header import make_header
from email.header import decode_header
from email.utils import parsedate_tz
from email.utils import mktime_tz
import time

POP3_SERVER = 'POP3-Server'
POP3_PORT = 110
POP3_USERNAME = 'UserName'
POP3_PASSWORD = 'Password'
SHOW_LENGTH = 5

f = lambda key: unicode(make_header(decode_header(
    headers[key].replace('"', ''))))
try:
  pop3 = poplib.POP3(POP3_SERVER, POP3_PORT)
  pop3.apop(POP3_USERNAME, POP3_PASSWORD)
  msg_cnt = pop3.stat()[0]
  for i in range(msg_cnt, max(msg_cnt - SHOW_LENGTH, 0), -1):
    headers = email.message_from_string('\n'.join(pop3.top(i, 0)[1]))
    print time.strftime('[%m/%d %H:%M]',
        time.localtime(mktime_tz(parsedate_tz(headers['date'])))),
    print '%s\n  %s' % (f('from'), f('subject'))
  pop3.quit()
except poplib.error_proto, detail:
  print 'POP3 Protocol Error:', detail

0 件のコメント:

コメントを投稿