发邮件是乱码的问题

国际邮箱好像都没问题,类似gmail,
就是国内的邮箱有一些问题,比如 mail.139.com
因此还是得进行一下处理
参看这个链接 http://suzhouclark.itpub.net/post/7184/484998
主要是如下的一段
msgText = MIMEText(plainText, 'plain','gb2312')

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

整个发邮件的代码也很短
#!/usr/bin/env python
# -*- coding: utf8 -*-
#导入smtplib和MIMEText
import smtplib
from email.mime.text import MIMEText
#############
#要发给谁,这里发给2个人
mailto_list=["13426444511@139.com","mlzboy@tom.com","frederick.mao@gmail.com","maolingzhi@vancl.cn"]
#####################
#设置服务器,用户名、口令以及邮箱的后缀
mail_host="smtp.126.com"
mail_user="xxxxxx"
mail_pass="xxxxxxx"
mail_postfix="126.com"
######################
def send_mail(to_list,sub,content):
    '''
    to_list:发给谁
    sub:主题
    content:内容
    send_mail("aaa@126.com","sub","content")
    '''
    me=mail_user+"<"+mail_user+"@"+mail_postfix+">"
    #msg = MIMEText(content)
    msg=MIMEText(content, 'plain','gb18030')
    msg['Subject'] = sub
    msg['From'] = me
    msg['To'] = ";".join(to_list)
    try:
        s = smtplib.SMTP()
        s.connect(mail_host)
        s.login(mail_user,mail_pass)
        s.sendmail(me, to_list, msg.as_string())
        s.close()
        return True
    except Exception, e:
        print str(e)
        return False
if __name__ == '__main__':
    if send_mail(mailto_list,"[报警]test,e.g.dangdang模板失效","具体链接为:。。。。"):
        print "发送成功"
    else:
        print "发送失败"




原文地址:https://www.cnblogs.com/lexus/p/1684956.html