亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

python smtp模塊發送郵件顯示亂碼的問題,smtp模塊文本編碼的選擇

python smtp模塊發送郵件顯示亂碼的問題,smtp模塊文本編碼的選擇

當年話下 2019-04-23 15:18:39
我用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,但依舊是亂碼請問大家有沒有類似的經驗可以分享一下?備注:1.smtp的server是QQ企業郵箱2.感謝theo的回答,但是對我貌似沒起作用3.補上我的原代碼:importsmtplibfromemail.mime.multipartimportMIMEMultipartfromemail.mime.textimportMIMETextserver=smtplib.SMTP()server.connect('smtp.exmail.qq.com','25')server.login('[email protected]','passwd')msg=MIMEMultipart('alternative')msg=MIMEMultipart('alternative')msg['Subject']=subjectmsg['From']='[email protected]'msg['To']=sendTomsg.attach(MIMEText(htmlBody,'html','utf-8'))server.sendmail('[email protected]','[email protected]',msg.as_string())根據theo的回答,應該在最后一行處改為msg.as_string().encode('ascii')但是會報錯,無法decode和encode
查看完整描述

2 回答

?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

part=MIMEText(htmlBody,'html','utf-8')part.add_header("Content-Type",'text/plain;charset="utf-8"')
指定MIMETEXT的頭信息里面字符集是utf-8就可以了
                            
查看完整回答
反對 回復 2019-04-23
  • 2 回答
  • 0 關注
  • 470 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號