# Copyright (C) 2001,2002 Python Software Foundation # Author: barry@zope.com (Barry Warsaw) """Class representing text/* type MIME documents. """ import warnings from email.MIMENonMultipart import MIMENonMultipart from email.Encoders import encode_7or8bit class MIMEText(MIMENonMultipart): """Class for generating text/* type MIME documents.""" def __init__(self, _text, _subtype='plain', _charset='us-ascii', _encoder=None): """Create a text/* type MIME document. _text is the string for this message object. If the text does not end in a newline, one is added. _subtype is the MIME sub content type, defaulting to "plain". _charset is the character set parameter added to the Content-Type: header. This defaults to "us-ascii". Note that as a side-effect, the Content-Transfer-Encoding: header will also be set. The use of the _encoder is deprecated. The encoding of the payload, and the setting of the character set parameter now happens implicitly based on the _charset argument. If _encoder is supplied, then a DeprecationWarning is used, and the _encoder functionality may override any header settings indicated by _charset. This is probably not what you want. """ MIMENonMultipart.__init__(self, 'text', _subtype, **{'charset': _charset}) if _text and not _text.endswith('\n'): _text += '\n' self.set_payload(_text, _charset) if _encoder is not None: warnings.warn('_encoder argument is obsolete.', DeprecationWarning, 2) # Because set_payload() with a _charset will set its own # Content-Transfer-Encoding: header, we need to delete the # existing one or will end up with two of them. :( del self['content-transfer-encoding'] _encoder(self)