On 16 July 2018 at 02:31, Skip Montanaro <skip.montan...@gmail.com> wrote: >> What are you actually trying to do? You're talking like you're trying >> to read an existing RFC822 email-with-headers from a file, but you're >> showing code that creates a new email with body content set from >> a file, which is a completely different thing. > > Yes, that's exactly what I'm trying to do. A bit more context... I'm > trying to port SpamBayes from Python 2 to Python 3. The file I > attached which failed to come through was exactly what you suggested, > an email in a file. That is what the example from the 3.7 docs > suggested I should be able to do. Had the message in the file been > encoded as utf-8, that would have worked. I just tested it with > another message which is utf-8-encoded.
As I understand it, an email is a logical object, and when it's saved to disk it should be done in some mailbox format or other. So rather than grabbing raw file data and trying to deserialise it, maybe you'd be better using one of the classes in the mailbox module (https://docs.python.org/3.7/library/mailbox.html)? Alternatively, maybe email.parser.message_from_binary_file (with a file object opened in binary) would do what you're after? Note: I've not actually used any of these methods myself... Paul -- https://mail.python.org/mailman/listinfo/python-list