简介
本文主要介绍Python标准库email的message和MIME类,并分析了相关的实现,能够是读者更好的使用email模块。
核心类Message
Message类是email的核心类,
它是email对象模型中基类,提供了设置和查询邮件头部,访问消息体的核心方法。从概念上讲,Message对象构成了邮件头部(Headers)和消息体(payloads)。头部格式在RFC 2822中进行了定义,每个头部由该项名字和值组成,并由冒号分割。消息体可以是简单消息对象的字符串或多个MIME容器的Message对象组成的多部分邮件。Message类在email.message模块中定义。
Message基类与MIME类的继承关系如下图所示:
MIMEBase基类
MIMEBase作为MIME相关对象基类继承了Message,拥有拥有Message操作邮件头部和邮件体的所有函数。MIME在邮件头部增加了Content-Type和MIME-Version两个头部信息,从下面MIMEBase的实现中可以清楚的看到这一点:
class MIMEBase(message.Message):
"""Base class for MIME specializations."""
def __init__(self, _maintype, _subtype, **_params):
"""This constructor adds a Content-Type: and a MIME-Version: header.
The Content-Type: header is taken from the _maintype and _subtype
arguments. Additional parameters for this header are taken from the
keyword arguments.
"""
message.Message.__init__(self)
ctype = '%s/%s' % (_mainty