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 |
|
---|
14 | class MIMEMultipart(MIMEBase):
|
---|
15 | """Base class for MIME multipart/* type messages."""
|
---|
16 |
|
---|
17 | def __init__(self, _subtype='mixed', boundary=None, _subparts=None,
|
---|
18 | **_params):
|
---|
19 | """Creates a multipart/* type message.
|
---|
20 |
|
---|
21 | By default, creates a multipart/mixed message, with proper
|
---|
22 | Content-Type and MIME-Version headers.
|
---|
23 |
|
---|
24 | _subtype is the subtype of the multipart content type, defaulting to
|
---|
25 | `mixed'.
|
---|
26 |
|
---|
27 | boundary is the multipart boundary string. By default it is
|
---|
28 | calculated as needed.
|
---|
29 |
|
---|
30 | _subparts is a sequence of initial subparts for the payload. It
|
---|
31 | must be an iterable object, such as a list. You can always
|
---|
32 | attach new subparts to the message by using the attach() method.
|
---|
33 |
|
---|
34 | Additional parameters for the Content-Type header are taken from the
|
---|
35 | keyword arguments (or passed into the _params argument).
|
---|
36 | """
|
---|
37 | MIMEBase.__init__(self, 'multipart', _subtype, **_params)
|
---|
38 |
|
---|
39 | # Initialise _payload to an empty list as the Message superclass's
|
---|
40 | # implementation of is_multipart assumes that _payload is a list for
|
---|
41 | # multipart messages.
|
---|
42 | self._payload = []
|
---|
43 |
|
---|
44 | if _subparts:
|
---|
45 | for p in _subparts:
|
---|
46 | self.attach(p)
|
---|
47 | if boundary:
|
---|
48 | self.set_boundary(boundary)
|
---|