diff options
Diffstat (limited to 'Lib/email')
-rw-r--r-- | Lib/email/mime/text.py | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/Lib/email/mime/text.py b/Lib/email/mime/text.py index 5a5e39b..80ff950 100644 --- a/Lib/email/mime/text.py +++ b/Lib/email/mime/text.py @@ -14,7 +14,7 @@ from email.mime.nonmultipart import MIMENonMultipart class MIMEText(MIMENonMultipart): """Class for generating text/* type MIME documents.""" - def __init__(self, _text, _subtype='plain', _charset='us-ascii'): + def __init__(self, _text, _subtype='plain', _charset=None): """Create a text/* type MIME document. _text is the string for this message object. @@ -25,16 +25,18 @@ class MIMEText(MIMENonMultipart): header. This defaults to "us-ascii". Note that as a side-effect, the Content-Transfer-Encoding header will also be set. """ - MIMENonMultipart.__init__(self, 'text', _subtype, - **{'charset': _charset}) - # If _charset was defualted, check to see see if there are non-ascii - # characters present. Default to utf-8 if there are. + # If no _charset was specified, check to see see if there are non-ascii + # characters present. If not, use 'us-ascii', otherwise use utf-8. # XXX: This can be removed once #7304 is fixed. - if _charset =='us-ascii': + if _charset is None: try: - _text.encode(_charset) + _text.encode('us-ascii') + _charset = 'us-ascii' except UnicodeEncodeError: _charset = 'utf-8' + MIMENonMultipart.__init__(self, 'text', _subtype, + **{'charset': _charset}) + self.set_payload(_text, _charset) |