Commit 2f514a80 authored by Barry Warsaw's avatar Barry Warsaw

These two classes provide bases for more specific content type

subclasses.

MIMENonMultipart: Base class for non-multipart/* content type subclass
specializations, e.g. image/gif.  This class overrides attach() which
raises an exception, since it makes no sense to attach a subpart to
e.g. an image/gif message.

MIMEMultipart: Base class for multipart/* content type subclass
specializations, e.g. multipart/mixed.  Does little more than provide
a useful constructor.
parent 1c30aa22
# Copyright (C) 2002 Python Software Foundation
# Author: barry@zope.com (Barry Warsaw)
"""Base class for MIME multipart/* type messages.
"""
from email import MIMEBase
class MIMEMultipart(MIMEBase.MIMEBase):
"""Base class for MIME multipart/* type messages."""
def __init__(self, _subtype='mixed', boundary=None, *_subparts, **_params):
"""Creates a multipart/* type message.
By default, creates a multipart/mixed message, with proper
Content-Type: and MIME-Version: headers.
_subtype is the subtype of the multipart content type, defaulting to
`mixed'.
boundary is the multipart boundary string. By default it is
calculated as needed.
_subparts is a sequence of initial subparts for the multipart. It
must be possible to convert this sequence to a list. You can always
attach new subparts to the message by using the attach() method.
Additional parameters for the Content-Type: header are taken from the
keyword arguments (or passed into the _params argument).
"""
MIMEBase.MIMEBase.__init__(self, 'multipart', _subtype, **params)
self.attach(*list(_subparts))
# Copyright (C) 2002 Python Software Foundation
# Author: barry@zope.com (Barry Warsaw)
"""Base class for MIME type messages that are not multipart.
"""
from email import Errors
from email import MIMEBase
class MIMENonMultipart(MIMEBase.MIMEBase):
"""Base class for MIME multipart/* type messages."""
def attach(self, payload):
# The public API prohibits attaching multiple subparts to MIMEBase
# derived subtypes since none of them are, by definition, of content
# type multipart/*
raise Errors.MultipartConversionError(
'Cannot attach additional subparts to non-multipart/*')
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment