我在使用Python 3中的smtplib通过电子邮件发送unicode字符时出现问题。这在3.1.1中失败,但在2.5.4中有效:

  import smtplib
  from email.mime.text import MIMEText

  sender = to = 'ABC@DEF.com'
  server = 'smtp.DEF.com'
  msg = MIMEText('€10')
  msg['Subject'] = 'Hello'
  msg['From'] = sender
  msg['To'] = to
  s = smtplib.SMTP(server)
  s.sendmail(sender, [to], msg.as_string())
  s.quit()

我尝试了一些来自文档的例子,但也失败了。 http://docs.python.org/3.1/library/email-examples。 html ,将目录内容作为MIME消息示例发送

有什么建议吗?

有帮助吗?

其他提示

MIMEText

_charset 参数根据 us-ascii /library/email.mime.html#email.mime.text.MIMEText"rel =“nofollow noreferrer”> docs 。由于€ 不是来自us-ascii,因此无效。

您尝试过的文档中的示例明确指出:

  

对于此示例,假设文本文件仅包含ASCII字符。

您可以使用 。您的邮件上的get_charset 方法用于调查字符集,还有 .set_charset

Gus Mueller有一个类似的问题: http://bugs.python.org/issue4403

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top