Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #27091

email with a non-ascii charset in Python3 ?

From Helmut Jarausch <jarausch@igpm.rwth-aachen.de>
Newsgroups comp.lang.python
Subject email with a non-ascii charset in Python3 ?
Date 2012-08-15 12:16 +0000
Message-ID <a91i9cFlktU4@mid.dfncis.de> (permalink)

Show all headers | View raw


Hi,

I'm sorry to ask such a FAQ but still I couldn't find an answer - neither in the docs nor the web.

What's wrong with the following script?

Many thanks for a hint,
Helmut.

#!/usr/bin/python3
#_*_ coding: latin1 _*_

import smtplib
from email.message import Message
import datetime

msg= Message()
msg.set_charset('latin-1')
msg['Subject'] = "*** Email Test ***"
msg['From'] = "Email_Tester@numa-sv.igpm.rwth-aachen.de"
msg['To']   = "jarausch@igpm.rwth-aachen.de"
msg['Date'] = datetime.datetime.utcnow().strftime('%m/%d/%Y %I:%M:%S %p')

server= smtplib.SMTP("igpm.igpm.rwth-aachen.de")
msg.set_payload("Gedanken über einen Test","iso-8859-1")

## I have tried msg.set_payload("Gedanken über einen Test".encode("iso-8859-1"),"iso-8859-1")
## which fails, as well

server.send_message(msg)
  Traceback (most recent call last):
    File "./Test_EMail_Py3.py", line 17, in <module>
      server.send_message(msg)
    File "/usr/lib64/python3.2/smtplib.py", line 812, in send_message
      g.flatten(msg_copy, linesep='\r\n')
    File "/usr/lib64/python3.2/email/generator.py", line 91, in flatten
      self._write(msg)
    File "/usr/lib64/python3.2/email/generator.py", line 137, in _write
      self._dispatch(msg)
    File "/usr/lib64/python3.2/email/generator.py", line 163, in _dispatch
      meth(msg)
    File "/usr/lib64/python3.2/email/generator.py", line 396, in _handle_text
      super(BytesGenerator,self)._handle_text(msg)
    File "/usr/lib64/python3.2/email/generator.py", line 201, in _handle_text
      self.write(payload)
    File "/usr/lib64/python3.2/email/generator.py", line 357, in write
      self._fp.write(s.encode('ascii', 'surrogateescape'))
  UnicodeEncodeError: 'ascii' codec can't encode character '\xfc' in position 9: ordinal not in range(128)
server.quit()



This is Python 3.2.4 (GIT 20120805)

Back to comp.lang.python | Previous | NextNext in thread | Find similar | Unroll thread


Thread

email with a non-ascii charset in Python3 ? Helmut Jarausch <jarausch@igpm.rwth-aachen.de> - 2012-08-15 12:16 +0000
  Re: email with a non-ascii charset in Python3 ? Christian Heimes <lists@cheimes.de> - 2012-08-15 14:48 +0200
    Re: email with a non-ascii charset in Python3 ? Helmut Jarausch <jarausch@skynet.be> - 2012-08-15 14:04 +0000
  Re: email with a non-ascii charset in Python3 ? MRAB <python@mrabarnett.plus.com> - 2012-08-15 17:57 +0100
    Re: email with a non-ascii charset in Python3 ? Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2012-08-15 23:54 +0000
      Re: email with a non-ascii charset in Python3 ? Ben Finney <ben+python@benfinney.id.au> - 2012-08-16 14:38 +1000

csiph-web