How to save a email message?

TheSaint nobody at nowhere.net.no
Sat Jul 2 07:42:32 EDT 2011


Hello,
I'm trying to gather some mail and save it. I don't get why it isn't saved 
as expected.

==========================================================================

>>> import poplib, socket, sys
>>> from configparser import Error as ProtocolError
>>> args= sys.argv[1:] # this is fake but is here as example

>>> def Pop3_access(*args):
>>>    '''Accessing a pop server, doing a function and return a result'''

>>>    func= args[0]; args= args[1:]
>>>    try:
>>>       pop= poplib.POP3(srv_info[0])
>>>       pop.user(srv_info[1])
>>>       pop.pass_(srv_info[2])
>>>    except (poplib.error_proto):
>>>       raise ProtocolError
>>>    except (socket.timeout,socket.gaierror):
>>>       try: pop.quit()
>>>       except NameError: pass # it wasn't started
>>>       return
>>>    result= func(pop, args)
>>>    pop.quit()
>>>    return result

>>> def func(pop, N):
...    return pop.retr(N)
...
>>> msg= Pop3_access(func, 4)
>>> from io import BytesIO as B
>>> fp= B()
>>> for l in msg[1]:
...    fp.write(l)
...    fp.write('\n'.encode())
...
34
1
50
1
63
1
65
1
36
1
52
1
41
1
114
1
45
1
38
1
74
1
56
1
37
1
34
1
28
1
23
1
33
1
56
1
57
1
17
1
44
1
31
1
54
1
30
1
30
1
0
1
31
1
0
1
39
1
0
1
12
1
32
1
49
1
0
1
6
1
64
1
68
1
0
1
>>> from mailbox import mbox as Mbx
>>> mbx= Mbx('/tmp/mb', True)
>>> mbx.add(fp)
0
>>> mbx.get_message(0)
<mailbox.mboxMessage object at 0x1704d10>
>>> print(mbx.get_message(0))


>>>
===================================================================

The result is an empty message, but the fp.getvalue() shows file-like 
stream.
Am I missing some point?

-- 
goto /dev/null



More information about the Python-list mailing list