python (3.12.0)
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
9 from email.mime.nonmultipart import MIMENonMultipart
10
11
12 class ESC[4;38;5;81mMIMEText(ESC[4;38;5;149mMIMENonMultipart):
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)