From joseph.2011 at reagle.org Sat Feb 25 00:19:37 2012
From: joseph.2011 at reagle.org (Joseph Reagle)
Date: Fri, 24 Feb 2012 23:19:37 -0000
Subject: [Email-SIG] I don't understand why this fails: mbox to maildir
based on docs
Message-ID: <201202241818.27577.joseph.2011@reagle.org>
I'm trying to do something real simple. Replicate an example in the docs for moving messages from maildir to mbox. (Docs use Babyl mailbox to an MH mailbox). But I'm failing and I don't know why?!?
~~~~
def convert_maildir(path):
"""Convert a maildir to mbox.
Replicates http://docs.python.org/py3k/library/mailbox.html#examples for maildir2mbox"""
info("converting %s" %path)
destination = mailbox.mbox('~/inbox.mbox')
destination.lock()
for message in mailbox.Maildir(path):
info("message type = %s" %type(message))
destination.add(mailbox.MaildirMessage(message))
destination.close()
20
Traceback (most recent call last):
File "/home/reagle/bin/kmail2mbox.py", line 75, in
convert_maildir(maildir)
File "/home/reagle/bin/kmail2mbox.py", line 43, in convert_maildir
destination.add(mailbox.MaildirMessage(message))
File "/usr/lib/python3.2/mailbox.py", line 595, in add
self._toc[self._next_key] = self._append_message(message)
File "/usr/lib/python3.2/mailbox.py", line 733, in _append_message
offsets = self._install_message(message)
File "/usr/lib/python3.2/mailbox.py", line 805, in _install_message
self._dump_message(message, self._file, self._mangle_from_)
File "/usr/lib/python3.2/mailbox.py", line 215, in _dump_message
gen.flatten(message)
File "/usr/lib/python3.2/email/generator.py", line 88, in flatten
self._write(msg)
File "/usr/lib/python3.2/email/generator.py", line 141, in _write
self._write_headers(msg)
File "/usr/lib/python3.2/email/generator.py", line 373, in _write_headers
self.write(header.encode(linesep=self._NL)+self._NL)
File "/usr/lib/python3.2/email/header.py", line 317, in encode
formatter.feed(lines[0], charset)
IndexError: list index out of range
~~~~
From joseph.2011 at reagle.org Mon Feb 27 19:45:25 2012
From: joseph.2011 at reagle.org (Joseph Reagle)
Date: Mon, 27 Feb 2012 18:45:25 -0000
Subject: [Email-SIG] encoding error in email/generator.py
Message-ID: <201202271344.13993.joseph.2011@reagle.org>
Hi Barry, I'm trying to do something real simple and already bumped into a bug in header.py, now I'm getting an error in generator.py . I can send the message (off list) if needed.
def convert_maildir_using_lib(path):
"""Convert a maildir to mbox.
Replicates http://docs.python.org/py3k/library/mailbox.html#examples for maildir2mbox
header.py must be patched first http://bugs.python.org/issue11401"""
info("converting %s" %path)
dest_path = basename(path)
destination = mailbox.mbox(dest_path)
destination.lock()
for message in mailbox.Maildir(path):
info("message subject = %s" %message['subject'])
destination.add(mailbox.MaildirMessage(message))
destination.close()
20 conve: message subject = Re: SPAM-LOW: Re: Catchin' up
Traceback (most recent call last):
File "bin/kmail2mbox.py", line 95, in
convert_maildir(maildir)
File "bin/kmail2mbox.py", line 47, in convert_maildir_using_lib
destination.add(mailbox.MaildirMessage(message))
File "/usr/lib/python3.2/mailbox.py", line 595, in add
self._toc[self._next_key] = self._append_message(message)
File "/usr/lib/python3.2/mailbox.py", line 733, in _append_message
offsets = self._install_message(message)
File "/usr/lib/python3.2/mailbox.py", line 805, in _install_message
self._dump_message(message, self._file, self._mangle_from_)
File "/usr/lib/python3.2/mailbox.py", line 215, in _dump_message
gen.flatten(message)
File "/usr/lib/python3.2/email/generator.py", line 88, in flatten
self._write(msg)
File "/usr/lib/python3.2/email/generator.py", line 134, in _write
self._dispatch(msg)
File "/usr/lib/python3.2/email/generator.py", line 160, in _dispatch
meth(msg)
File "/usr/lib/python3.2/email/generator.py", line 221, in _handle_multipart
g.flatten(part, unixfrom=False, linesep=self._NL)
File "/usr/lib/python3.2/email/generator.py", line 88, in flatten
self._write(msg)
File "/usr/lib/python3.2/email/generator.py", line 134, in _write
self._dispatch(msg)
File "/usr/lib/python3.2/email/generator.py", line 160, in _dispatch
meth(msg)
File "/usr/lib/python3.2/email/generator.py", line 385, in _handle_text
super(BytesGenerator,self)._handle_text(msg)
File "/usr/lib/python3.2/email/generator.py", line 198, in _handle_text
self.write(payload)
File "/usr/lib/python3.2/email/generator.py", line 346, in write
self._fp.write(s.encode('ascii', 'surrogateescape'))
UnicodeEncodeError: 'ascii' codec can't encode character '\xa0' in position 211: ordinal not in range(128)