python发邮件乱码
1. python 发邮件乱码的几种解决方法
打开python的Lib文件夹下的mimetypes.py文件,找到大概256行的
‘default_encoding=sys.getdefaultencoding()’。
在这行前面添加三行,并且注释4行代码
#try:
#ctype=ctype.encode(default_encoding)#omitin3.x!
#exceptUnicodeEncodeError:
#pass
else:
yieldctype
i+=1
ifsys.getdefaultencoding()!='gbk':
reload(sys)
sys.setdefaultencoding('gbk')
default_encoding=sys.getdefaultencoding()
2. python 语言发送邮件提示错误.找了资料也没有解决.希望帮帮忙提示一下
在Fedora11默认安装的Python2.6上出现同样的问题。
使用了StartTTLS扩展登录126的SMTP服务器,但是服务器不支持。应该有另外的方法登录。
用我自己的126帐号实验成功,要加一句:
# 在sendmail前需要先登录、验证发送者身份的~_~
server.login('aaa', 'aaa de mi ma')
fasongfanhui=smtpixiang.sendmail(youxiang,(youxiang,),youjianxinxi)
3. python 收取邮件都是乱码。
一般邮件在传输的时候都会被编码,图中的是base64编码的特征,这类编码是可逆的,只需要进行base64解码即可,python有个base64模块,可以用来编码和解码。
4. python发送邮件显示这样,请问怎么处理谢谢
从报错上看,是由于类型不匹配导致的。
所以在输出字符串的时候,前面加了str()用来前强制转换成str类型。
5. python字符串是乱码怎么办
显示乱码的主要原因是:字符串编码集问题
其原因详细:
Windows 下的字符串编码集为GBK 而我们的Python字符串一般是 UTF-8
代码详情:
#!/usr/bin/python
# coding: utf-8
os_char='gb18030' # 定义转换类型为GB18030
print u"我是字符串" # 直接打印Unicode
print u"我是字符串".encode(os_char) # 转换为GB18030编码
print "我是字符串".decode("utf-8").encode(os_char) # 先转换为UTF-8 再转换为GB18030
备注:
之前的第一行(#!) 为Linux环境下的执行文件声明 如 Bash 的声明为 #!/bin/bash
第二行注明编码集为GB18030
Linux下的编码集为 UTF-8
6. 我用python发邮件。出现以下问题怎么处理
1、准备两个邮箱帐号,一个是常用的(接收端),另一个可以注册网易163邮箱或者foxmail邮箱也可(发送端),本次我使用两个QQ邮箱进行演示。
2、在邮箱的设置
3、账户中开启SMTP功能,如下图:
8、如果能成功收到邮件的话就说明完成了。
7. python 中文乱码问题
记事本是用utf-8保存你下载了东西的。你下载下来的不是utf-8,保存下来中文当然就乱码了。而gbk和utf-8里英文的编码值都一样,所以不受影响。
一个方法是你留意下目标页面的charset 和 contentType,另一个方法是你复制一个目标页面的字,放cmd里看它的编码长度,以此来判断它的原来编码。
8. 用Python发邮件的时候,附件文件名如果是中文,接受到的总是乱码,如何解决谢大神解答!
'attachment; filename="中文.txt"'.decode('utf-8')
在每个python 的中文字符后面加.decode('utf-8')看看?
9. python异常乱码如何解决
如果页面是GB18030编码,而数据库是GBK编码,一般来说是不用转换的。GB18030是GBK的超级。GB18030本身兼容GBK,而GB18030中的部分字符GBK中是没有的。将GB18030字符写入GBK的数据库,只会丢失部分字符而已。一般网页上不会出现罕见的字符,所以这种情况是无需处理的。
所以,请仔细核对页面和数据库的编码。
即使你提供的页面、数据库编码是正确的,而且一定要转换,也应该这样做:
s='GB18030字符串'
s=s.decode('GB18030')#转化为unicode
s=s.encode('GBK')#转化为GBK