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)