1 # Copyright (C) 2002-2006 Python Software Foundation 2 # Author: Barry Warsaw 3 # Contact: email-sig (at] 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 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) 49