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)