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 9from email.mime.base import MIMEBase 10 11 12 13class 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) 48