在 Python 中如何将 `email.message.Message` 对象转换为 `email.message.EmailMessage` 对象
In Python how to convert an `email.message.Message` object into an `email.message.EmailMessage` object
根据我的理解,Python 3.6 标准库中的 mbox
class 生成类型为 email.message.Message
的旧式消息对象。
3.4/3.6 中引入的较新的 class email.message.EmailMessage
可以更轻松地访问消息内容(通过 get_content()
和 get_body()
)。如何将从 mbox
迭代器获得的 email.message.Message
对象转换为 email.message.EmailMessage
对象?
采用 我能够创建一个 mbox
实例,其中自动包含 email.message.EmailMessage
:
类型的消息对象
def make_EmailMessage(f):
"""Factory to create EmailMessage objects instead of Message objects"""
return email.message_from_binary_file(f, policy=epolicy.default)
mbox = mailbox.mbox(mboxfile, factory=make_EmailMessage)
迭代 mbox
时,所有消息(甚至消息中包含的消息!)都是 email.message.EmailMessage
类型。
要创建 email.message.EmailMessage
对象,请将解析器中的策略更改为 email.policy.default
。
msg = email.message_from_string(raw_email_string,
policy = email.policy.default)
根据我的理解,Python 3.6 标准库中的 mbox
class 生成类型为 email.message.Message
的旧式消息对象。
3.4/3.6 中引入的较新的 class email.message.EmailMessage
可以更轻松地访问消息内容(通过 get_content()
和 get_body()
)。如何将从 mbox
迭代器获得的 email.message.Message
对象转换为 email.message.EmailMessage
对象?
采用 mbox
实例,其中自动包含 email.message.EmailMessage
:
def make_EmailMessage(f):
"""Factory to create EmailMessage objects instead of Message objects"""
return email.message_from_binary_file(f, policy=epolicy.default)
mbox = mailbox.mbox(mboxfile, factory=make_EmailMessage)
迭代 mbox
时,所有消息(甚至消息中包含的消息!)都是 email.message.EmailMessage
类型。
要创建 email.message.EmailMessage
对象,请将解析器中的策略更改为 email.policy.default
。
msg = email.message_from_string(raw_email_string,
policy = email.policy.default)