您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python 3 smtplib使用Unicode字符发送

Python 3 smtplib使用Unicode字符发送

关键在docs中

MIMEText类是MIMENonMultipart的子类,用于创建主要类型文本的MIME对象。_text是有效负载的字符串。_subtype是次要类型,认为纯文本。_charset是文本的字符集,并作为参数传递给MIMENonMultipart构造函数;它认为us- ascii。对文本数据不进行任何猜测或编码。

因此,您需要的显然 不是 msg = MIMEText('€10'),而是:

尽管没有全部清楚地记录下来,但是sendmail需要一个字节字符串,而不是Unicode字符串(这是SMTP协议指定的);查看msg.as_string()两种构建方式的外观- 给定“无猜测或编码”,您的方式中仍然有欧元字符(并且sendmail无法将其转换为字节串),我的没有’t(整个utf-8均已明确指定)。

python 2022/1/1 18:38:33 有258人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶