1# Copyright (C) 2001-2006 Python Software Foundation 2# Author: Barry Warsaw 3# Contact: email-sig@python.org 4 5"""Class representing text/* type MIME documents.""" 6 7__all__ = ['MIMEText'] 8 9from email.mime.nonmultipart import MIMENonMultipart 10 11 12class MIMEText(MIMENonMultipart): 13 """Class for generating text/* type MIME documents.""" 14 15 def __init__(self, _text, _subtype='plain', _charset=None, *, policy=None): 16 """Create a text/* type MIME document. 17 18 _text is the string for this message object. 19 20 _subtype is the MIME sub content type, defaulting to "plain". 21 22 _charset is the character set parameter added to the Content-Type 23 header. This defaults to "us-ascii". Note that as a side-effect, the 24 Content-Transfer-Encoding header will also be set. 25 """ 26 27 # If no _charset was specified, check to see if there are non-ascii 28 # characters present. If not, use 'us-ascii', otherwise use utf-8. 29 # XXX: This can be removed once #7304 is fixed. 30 if _charset is None: 31 try: 32 _text.encode('us-ascii') 33 _charset = 'us-ascii' 34 except UnicodeEncodeError: 35 _charset = 'utf-8' 36 37 MIMENonMultipart.__init__(self, 'text', _subtype, policy=policy, 38 charset=str(_charset)) 39 40 self.set_payload(_text, _charset) 41