email.message.Message - as_string fails
Terry Reedy
tjreedy at udel.edu
Fri Dec 28 20:57:46 EST 2012
On 12/28/2012 7:22 AM, Helmut Jarausch wrote:
> Hi,
>
> I'm trying to filter an mbox file by removing some messages.
> For that I use
> Parser= FeedParser(policy=policy.SMTP)
> and 'feed' any lines to it.
> If the mbox file contains a white line followed by '^From ',
> I do
>
> Msg= Parser.close()
>
> (lateron I delete the Parser and create a new one by
> Parser= FeedParser(policy=policy.SMTP)
> )
>
> I can access parts of the message by Msg['Message-ID'], e.g.
> but even for the very first message, trying to print it or convert it to a string
> by MsgStr=Msg.as_string(unixfrom=True)
>
> lets Python (3.3.1_pre20121209) die with
>
> Traceback (most recent call last):
> File "Email_Parse.py", line 35, in <module>
> MsgStr=Msg.as_string(unixfrom=True)
> File "/usr/lib64/python3.3/email/message.py", line 151, in as_string
> g.flatten(self, unixfrom=unixfrom)
> File "/usr/lib64/python3.3/email/generator.py", line 112, in flatten
> self._write(msg)
> File "/usr/lib64/python3.3/email/generator.py", line 171, in _write
> self._write_headers(msg)
> File "/usr/lib64/python3.3/email/generator.py", line 198, in _write_headers
> self.write(self.policy.fold(h, v))
> File "/usr/lib64/python3.3/email/policy.py", line 153, in fold
> return self._fold(name, value, refold_binary=True)
> File "/usr/lib64/python3.3/email/policy.py", line 176, in _fold
> (len(lines[0])+len(name)+2 > maxlen or
> IndexError: list index out of range
The only list index visible is 0 in lines[0]. If this raises, lines is
empty. You could trace back to see where lines is defined. I suspect it
is all or part of the Msg you started with.
I believe that some of email was rewritten for 3.3, so it is possible
that you found a bug based on an untrue assumption. It is also possible
that you missed a limitation in the doc, or tripped over an intended but
not written limitation. So I hope you do the tracing, so if doc or code
need a fix, a tracker issue can be opened.
--
Terry Jan Reedy
More information about the Python-list
mailing list