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