python (3.12.0)
1 # Copyright (C) 2002-2006 Python Software Foundation
2 # Author: Barry Warsaw
3 # Contact: email-sig@python.org
4
5 """Base class for MIME multipart/* type messages."""
6
7 __all__ = ['MIMEMultipart']
8
9 from email.mime.base import MIMEBase
10
11
12 class ESC[4;38;5;81mMIMEMultipart(ESC[4;38;5;149mMIMEBase):
13 """Base class for MIME multipart/* type messages."""
14
15 def __init__(self, _subtype='mixed', boundary=None, _subparts=None,
16 *, policy=None,
17 **_params):
18 """Creates a multipart/* type message.
19
20 By default, creates a multipart/mixed message, with proper
21 Content-Type and MIME-Version headers.
22
23 _subtype is the subtype of the multipart content type, defaulting to
24 `mixed'.
25
26 boundary is the multipart boundary string. By default it is
27 calculated as needed.
28
29 _subparts is a sequence of initial subparts for the payload. It
30 must be an iterable object, such as a list. You can always
31 attach new subparts to the message by using the attach() method.
32
33 Additional parameters for the Content-Type header are taken from the
34 keyword arguments (or passed into the _params argument).
35 """
36 MIMEBase.__init__(self, 'multipart', _subtype, policy=policy, **_params)
37
38 # Initialise _payload to an empty list as the Message superclass's
39 # implementation of is_multipart assumes that _payload is a list for
40 # multipart messages.
41 self._payload = []
42
43 if _subparts:
44 for p in _subparts:
45 self.attach(p)
46 if boundary:
47 self.set_boundary(boundary)