Peter Kleiweg <pklei...@xs4all.nl> added the comment:

In Python 3.1.1, email.mime.text.MIMEText accepts an 8-bit charset, but not 
utf-8.

I think you should not have to specify a charset. All strings are unicode now, 
so I think the package should choose an appropriate charset based on the 
characters in the text, us-ascii, some iso-8859 charset, or utf-8, whatever 
fits.


Python 3.1.1 (r311:74480, Oct  2 2009, 11:50:52)                                
                                                              
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2                   
                                                              
Type "help", "copyright", "credits" or "license" for more information.          
                                                              
>>> from email.mime.text import MIMEText                                        
>>>                                                               
>>> text = 'H\u00e9'                                                            
>>>                                                               
>>> msg = MIMEText(text, 'plain', 'iso-8859-1')                                 
>>>                                                               
>>> print(msg.as_string())                                                      
>>>                                                               
Content-Type: text/plain; charset="iso-8859-1"                                  
                                                              
MIME-Version: 1.0                                                               
                                                              
Content-Transfer-Encoding: quoted-printable                                     
                                                              
                                                                                
                                                              
H=E9                                                                            
                                                              
>>> msg = MIMEText(text, 'plain', 'utf-8')                                      
>>>                                                               
Traceback (most recent call last):                                              
                                                              
  File "/my/opt/Python-3/lib/python3.1/email/message.py", line 269, in 
set_charset                                                            
    cte(self)                                                                   
                                                              
TypeError: 'str' object is not callable                                         
                                                              
                                                                                
                                                              
During handling of the above exception, another exception occurred:             
                                                              
                                                                                
                                                              
Traceback (most recent call last):                                              
                                                              
  File "<stdin>", line 1, in <module>                                           
                                                              
  File "/my/opt/Python-3/lib/python3.1/email/mime/text.py", line 30, in 
__init__                                                              
    self.set_payload(_text, _charset)                                           
                                                              
  File "/my/opt/Python-3/lib/python3.1/email/message.py", line 234, in 
set_payload                                                            
    self.set_charset(charset)                                                   
                                                              
  File "/my/opt/Python-3/lib/python3.1/email/message.py", line 271, in 
set_charset                                                            
    self._payload = charset.body_encode(self._payload)                          
                                                              
  File "/my/opt/Python-3/lib/python3.1/email/charset.py", line 380, in 
body_encode                                                            
    return email.base64mime.body_encode(string)                                 
                                                              
  File "/my/opt/Python-3/lib/python3.1/email/base64mime.py", line 94, in 
body_encode                                                          
    enc = b2a_base64(s[i:i + max_unencoded]).decode("ascii")                    
                                                              
TypeError: must be bytes or buffer, not str                                     
                                                              
>>>

----------
nosy: +pebbe

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue1685453>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to