星期三, 7月 15, 2009

POP3 in Python - 2 (Get Mailbox info)

取得連線後,可用POP3Object.list()取得messages的詳細資料

list()會回傳兩個element的tuple:
1.response code:通常忽略,因為有錯會有exception
2.list:包含兩樣,分別是message number & message size,用空白分開。number不一定連續,每次POP3連線的number也不一定一樣。


#!/usr/bin/env python

import getpass, poplib, sys

(host, user) = sys.argv[1:]
passwd = getpass.getpass()

p = poplib.POP3(host)
try:
p.user(user)
p.pass_(passwd)
except poplib.error_proto, e:
print "Login failed.", e
sys.exit(1)
status = p.stat()
print "Mailbox has %d messages for a total of %d bytes" % (status[0], status[1])

for item in p.list()[1]:
number, octets = item.split(' ')
print "Message %s: %s bytes" % (number, octets)
p.quit()


程式的output:

cacaegg@cacabook:~/workspace/NetworkProgram/src/POP$ ./mailbox.py mx.mgt.ncu.edu.tw cacaegg
Password:
Mailbox has 1 messages for a total of 2484 bytes
Message 1: 2484 bytes

沒有留言: