import email.parser | |
from email import policy | |
def openFromFile(fp) -> email.message.EmailMessage: | |
""" | |
Read in the open file pointer | |
:param fp: file pointer to open file. | |
:type fp: file pointer | |
:returns: msg which is an email.message.EmailMessage | |
:rtype: email.message.EmailMessage | |
""" | |
msg = email.parser.Parser(policy=policy.default) | |
return msg.parse(fp) | |
def openFromStr(string) -> email.message.EmailMessage: | |
""" | |
Read in the email from string. | |
:param string: | |
:type string: str | |
:returns: msg which is an email.message.EmailMessage | |
:rtype: email.message.EmailMessage | |
""" | |
msg = email.parser.Parser(policy=policy.default) | |
return msg.parsestr(string) |
Using email.parser
and email.policy
along with policy.default
means that
you do not need to worry about character encoding as the modules will take care
of it automatically.
I forget where I saw it but I believe that policy.default will become the real
default in the future.
Current policy.compat32
is the module default.