|
|
|
|
|
|
|
|
|
"""Base class for MIME multipart/* type messages.""" |
|
|
|
__all__ = ['MIMEMultipart'] |
|
|
|
from email.mime.base import MIMEBase |
|
|
|
|
|
class MIMEMultipart(MIMEBase): |
|
"""Base class for MIME multipart/* type messages.""" |
|
|
|
def __init__(self, _subtype='mixed', boundary=None, _subparts=None, |
|
*, policy=None, |
|
**_params): |
|
"""Creates a multipart/* type message. |
|
|
|
By default, creates a multipart/mixed message, with proper |
|
Content-Type and MIME-Version headers. |
|
|
|
_subtype is the subtype of the multipart content type, defaulting to |
|
`mixed'. |
|
|
|
boundary is the multipart boundary string. By default it is |
|
calculated as needed. |
|
|
|
_subparts is a sequence of initial subparts for the payload. It |
|
must be an iterable object, such as a list. You can always |
|
attach new subparts to the message by using the attach() method. |
|
|
|
Additional parameters for the Content-Type header are taken from the |
|
keyword arguments (or passed into the _params argument). |
|
""" |
|
MIMEBase.__init__(self, 'multipart', _subtype, policy=policy, **_params) |
|
|
|
|
|
|
|
|
|
self._payload = [] |
|
|
|
if _subparts: |
|
for p in _subparts: |
|
self.attach(p) |
|
if boundary: |
|
self.set_boundary(boundary) |
|
|