Home | History | Annotate | Download | only in mime
      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