python邮件乱码 smtp模块文本编码问题,,我是一个python初学
python邮件乱码 smtp模块文本编码问题,,我是一个python初学
我是一个python初学者,在使用python的smtp模块登陆QQ邮箱发邮件给用户,邮件内容和标题都是UTF-8编码,并且在MIME中设置了Content-Type为text/html;charset=utf-8,要提问的问题如下
问题:用户收到的邮件大部分是乱码,QQ邮箱显示正常,163系乱码,大部分企业自用邮箱估计也是乱码
问题定位:请问在smtp模块中怎样选择编码?
经测试python的smtp不能发送unicode(对UTF8文本进行decode)
自助:在163中可以手动切换为utf8编码,这样可以正确显示,考虑到163的默认编码为GB2312,我把邮件内容和标题改为GB2312编码后发到163,但依旧是乱码
请问在学习python的大神们有没有类似的经验可以分享一下?
备注:
1.smtp的server是QQ企业邮箱
2.感谢theo的回答,但是对我貌似没起作用
3.补上我的原代码:
import smtplibfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextserver = smtplib.SMTP()server.connect('smtp.exmail.qq.com', '25')server.login('myemail@qq.com', 'passwd')msg = MIMEMultipart('alternative')msg = MIMEMultipart('alternative')msg['Subject'] = subjectmsg['From'] = 'myemail@qq.com'msg['To'] = sendTomsg.attach(MIMEText(htmlBody, 'html', 'utf-8'))server.sendmail('myemail@qq.com', 'target@fac.com', msg.as_string())
根据theo的回答,应该在最后一行处改为msg.as_string().encode('ascii')
但是会报错,无法decode和encode
编橙之家文章,
相关内容
- Python urllib2.Request.add_header() 添加header不成功解决方法,
- Python解余数题7除-3商和余数应该是多少,python-3,在学习
- python EOFError: EOF when reading a line错误怎么加事?,pytho
- Linux 系统中nginx是否适合用在工控的嵌入式设备上?,
- 模拟浏览器打开路由器地址并操作 用python这样简单的语
- pymedia & wxpython 制作播放器播放时主窗口卡死,
- Peewee 限制了 Field 中的 choices,为什么仍然可以插入其他
- 用Python进行网页抓取:selenium 还是 X ?,pythonselenium,用
- 不用Python语言怎样才能用得上 JVM 的性能?,pythonjvm,不用
- Pychram IDE软件开发django项目中调用south疑问,pychramdjan
评论关闭