poplib utils (retr_text, retr_msg, ..) that useful while working with POP3 server
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | import email, StringIO
def list_(pop):
resp, lst, octets = pop.list()
return [i.split() for i in lst]
# msgnum, msgsize
def retr_text(pop, msgnum):
resp, msg, octets = pop.retr(msgnum)
return b'\n'.join(msg)
def retr_msg(pop, msgnum):
msg = retr_text(pop, msgnum)
fp = StringIO.StringIO(msg)
try:
msg = email.message_from_file(fp)
finally:
fp.close()
def list_text(pop):
'generator msgnum, text'
for msgnum, msgsize in list_(pop):
text = retr_text(pop, msgnum)
yield msgnum, text
def list_msg(pop):
'generator msgnum, msg'
for msgnum, msgsize in list_(pop):
msg = retr_msg(pop, msgnum)
yield msgnum, msg
|
Tags: email