|
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 |
|
13 class MIMEMultipart(MIMEBase): |
|
14 """Base class for MIME multipart/* type messages.""" |
|
15 |
|
16 def __init__(self, _subtype='mixed', boundary=None, _subparts=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, **_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) |