Welcome, guest | Sign In | My Account | Store | Cart

poplib utils (retr_text, retr_msg, ..) that useful while working with POP3 server

Python, 30 lines
 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