Python 一封电子邮件可以包含多少文本/纯文本和文本/html部分?
我正在尝试用python编写电子邮件的通用解析器函数。我希望这个函数能够获取任何电子邮件的所有纯文本和所有htmlPython 一封电子邮件可以包含多少文本/纯文本和文本/html部分?,python,email,Python,Email,我正在尝试用python编写电子邮件的通用解析器函数。我希望这个函数能够获取任何电子邮件的所有纯文本和所有html def parse(msg): """function accepts an email.message_from_bytes object.""" text = None html = None for p in msg.walk(): if p.get_con
def parse(msg):
"""function accepts an email.message_from_bytes object."""
text = None
html = None
for p in msg.walk():
if p.get_content_type() == 'text/plain':
text = p.get_payload()
elif p.get_content_type() == 'text/html':
html = p.get_payload()
return text, html
我的问题是:一封电子邮件可以有多个文本/纯文本或部分或文本/html部分吗?在上面的函数中,我只解析每个函数的一个实例。我是否需要为有多个文本/普通部分或html部分的实例做好准备?您可以将
text
和html
定义为list
并将每个部分附加到列表中。例如,text\u parts=[]
,text\u parts.append(p.get\u payload())
。但我想知道是否需要。阅读RFC 2822文档并不容易。我不是专业人士,但据我记忆所及,我收到过几封邮件,但我不确定是html
还是multipart
。我认为没有任何限制。但是如果它是多部分/可选的,那么具有相同MIME类型的多个部分是不常见的——这种类型的通常原因是选择不同的格式。参见第7.2.3节,这并不复杂。