2016-02-06 09:36:57 +00:00
|
|
|
|
# Copyright (C) 2002-2006 Python Software Foundation
|
|
|
|
|
# Author: Barry Warsaw
|
|
|
|
|
# Contact: email-sig@python.org
|
|
|
|
|
|
|
|
|
|
"""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,
|
2018-12-31 23:25:26 +00:00
|
|
|
|
*, policy=None,
|
2016-02-06 09:36:57 +00:00
|
|
|
|
**_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).
|
|
|
|
|
"""
|
2018-12-31 23:25:26 +00:00
|
|
|
|
MIMEBase.__init__(self, 'multipart', _subtype, policy=policy, **_params)
|
2016-02-06 09:36:57 +00:00
|
|
|
|
|
|
|
|
|
# Initialise _payload to an empty list as the Message superclass's
|
|
|
|
|
# implementation of is_multipart assumes that _payload is a list for
|
|
|
|
|
# multipart messages.
|
|
|
|
|
self._payload = []
|
|
|
|
|
|
|
|
|
|
if _subparts:
|
|
|
|
|
for p in _subparts:
|
|
|
|
|
self.attach(p)
|
|
|
|
|
if boundary:
|
|
|
|
|
self.set_boundary(boundary)
|