| 
									
										
										
										
											2007-08-30 01:15:14 +00:00
										 |  |  |  | # Copyright (C) 2001-2006 Python Software Foundation | 
					
						
							|  |  |  |  | # Author: Barry Warsaw | 
					
						
							|  |  |  |  | # Contact: email-sig@python.org | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | """Class representing text/* type MIME documents.""" | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | __all__ = ['MIMEText'] | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-27 00:57:29 +03:00
										 |  |  |  | from email.charset import Charset | 
					
						
							| 
									
										
										
										
											2007-08-30 01:15:14 +00:00
										 |  |  |  | from email.mime.nonmultipart import MIMENonMultipart | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |  | 
					
						
							|  |  |  |  | class MIMEText(MIMENonMultipart): | 
					
						
							|  |  |  |  |     """Class for generating text/* type MIME documents.""" | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-07 16:48:35 -04:00
										 |  |  |  |     def __init__(self, _text, _subtype='plain', _charset=None, *, policy=None): | 
					
						
							| 
									
										
										
										
											2007-08-30 01:15:14 +00:00
										 |  |  |  |         """Create a text/* type MIME document.
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         _text is the string for this message object. | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         _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. | 
					
						
							|  |  |  |  |         """
 | 
					
						
							| 
									
										
										
										
											2012-03-22 22:17:51 -04:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-11 18:34:00 -04:00
										 |  |  |  |         # If no _charset was specified, check to see if there are non-ascii | 
					
						
							| 
									
										
										
										
											2012-03-22 22:40:44 -04:00
										 |  |  |  |         # characters present. If not, use 'us-ascii', otherwise use utf-8. | 
					
						
							| 
									
										
										
										
											2012-03-22 22:17:51 -04:00
										 |  |  |  |         # XXX: This can be removed once #7304 is fixed. | 
					
						
							| 
									
										
										
										
											2012-03-22 22:40:44 -04:00
										 |  |  |  |         if _charset is None: | 
					
						
							| 
									
										
										
										
											2012-03-22 22:17:51 -04:00
										 |  |  |  |             try: | 
					
						
							| 
									
										
										
										
											2012-03-22 22:40:44 -04:00
										 |  |  |  |                 _text.encode('us-ascii') | 
					
						
							|  |  |  |  |                 _charset = 'us-ascii' | 
					
						
							| 
									
										
										
										
											2012-03-22 22:17:51 -04:00
										 |  |  |  |             except UnicodeEncodeError: | 
					
						
							|  |  |  |  |                 _charset = 'utf-8' | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-07 16:48:35 -04:00
										 |  |  |  |         MIMENonMultipart.__init__(self, 'text', _subtype, policy=policy, | 
					
						
							| 
									
										
										
										
											2016-09-08 19:40:30 +03:00
										 |  |  |  |                                   **{'charset': str(_charset)}) | 
					
						
							| 
									
										
										
										
											2012-03-22 22:40:44 -04:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-08-30 01:15:14 +00:00
										 |  |  |  |         self.set_payload(_text, _charset) |