[wxPython]python3 中文邮件

最近写了个小程序自动检测oa的更新信息,然后以邮件的形式发出通知。其中在配置发送邮件模块的时候,无论怎么配置邮件正文都无法显示中文。我的环境是win7 x64,python3.1.1。查找资料也只有一种方法,就是添加正文msg的时候指定字符集为gb2312,如下所示:

 

        msgText = MIMEText(plainText, 'plain','gb2312')

        msgHtml = MIMEText(htmlText, 'html','gb2312')

 

但是这样配置出现的一个错误就是,如果plainText,htmlText值中含有中文是会出现错误提示“TypeError: must be bytes or buffer, not str”。如果不指定gb2312,又会提示ascii编码不够用。

 

       看来问题主要是出在编码上,再试着先将plainText和htmlText编码为gb2312格式,这样果然好用。配置如下:

 

        msgText = MIMEText(plainText.encode('gb2312'), 'plain','gb2312')

        msgHtml = MIMEText(htmlText.encode('gb2312'), 'html','gb2312')

 

 

总结:

 

1、邮件标题使用中文:

 

标题做如下处理:

subject=Header(subject, 'gb2312')

 

2、邮件正文使用中文:

普通文本和html文本作如下处理:

 

        msgText = MIMEText(plainText.encode('gb2312'), 'plain','gb2312')

        msgHtml = MIMEText(htmlText.encode('gb2312'), 'html','gb2312')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值