#coding=cp936 from email.MIMEText import MIMEText from email.Header import Header import smtplib msg=MIMEText('hello world! 中文邮件测试',_subtype='plain',_charset='gb2312') msg['subject']=Header('中文邮件名测试test!','gb2312') msg['from']='test@yahoo.com' #邮件client的所显示的sender,可有也可以 msg['to']='hello@yahoo.com' #邮件client 所显示的收件人。显示什么可以自己定 fromaddr='test@yahoo.com' toaddrs=['hell01@yahoo.com','hello2@yahoo.com'] server.smtp('smtp.mail.yahoo.com.cn') #通过yahoo的免费邮箱发送。 server.login('loginname','password') #yahoo smtp需要认证 server.sendmail(fromaddr,toaddrs,msg.as_string()) #邮件正文为html #只需对上面做一点改动 msg=MIMEText('hello world! 中文邮件测试',_subtype='plain',_charset='gb2312') 改为 txt='<html><body>hello world! 中文邮件测试</body></html>' msg=MIMEText(txt,_subtype='html',_charset='gb2312') #邮件带附件 #coding=cp936 from email.MIMEText import MIMEText from email.MIMEMultipart import MIMEMultipart from email.Header import Header import smtplib, base64, sys msg=MIMEMultipart() #支持附件 txt1=MIMEText('邮件正文',_subtype='plain',_charset='gb2312') txt1.replace_header('Content-Transfer-Encoding', 'quoted-printable') #否则邮件原文看不懂,但并不影响读信 msg.attach(txt1) txt2=base64.encodestring(open('中文附件名test.rar','rb').read() #附件base64编码 txt2=MIMEText(txt2) txt2.replace_header('Content-Type', 'application/octet-stream; name=”%s”' % Header('中文f附件名测试test.rar','gb2312')) txt2.add_header('Content-Disposition', 'p_w_upload;filename=”%s”' %Header('中文附件名测试test.rar','gb2312') ) msg(attach.txt2) msg['subject']=Header('中文邮件名测试test!(含附件)','gb2312') msg['from']='test@yahoo.com' msg['to']='hello@yahoo.com' fromaddr='test@yahoo.com' toaddrs=['hell01@yahoo.com','hello2@yahoo.com'] server.smtp('smtp.mail.yahoo.com.cn') server.login('loginname','password') server.sendmail(fromaddr,toaddrs,msg.as_string()) MIMEText默认的编码是 us-ascii, 需要改成 utf-8 MIMEText('中文', _charset='UTF-8') 或者调用set_charset来修改 from email.MIMEText import MIMEText #msg = MIMEText('中文', _charset='UTF-8') msg = MIMEText('中文') msg.set_charset('UTF-8') print msg.as_string() 发送html邮件 MIMEText(html, 'html') 发送txt邮件 MIMEText(text, 'plain') 最后脚本如下: #!/usr/bin/env python # encoding: utf-8 import smtplib import os from email.MIMEText import MIMEText from email.Header import Header #huizong=os.system("cat /tmp/tongji_vb.log |sed '1d'|awk '{a+=$2;b+=$3;c+=$4;d+=$5;}END{print a,b,c,d}'") res=os.popen("cat /tmp/tongji_vb.log |sed '1d'|awk '{a+=$2;b+=$3;c+=$4;d+=$5;}END{print a,b,c,d}'") a = res.read() a = a.replace(" " ,"\t\t",1) a = a.replace(" " ,"\t\t\t",2) a = "总量 " + "\t\t" + a f = open("/tmp/tongji_vb.log") s = f.readline() filecon = s + "\n" + a + "\n" s = f.readline() while s: filecon += s + "\n" s = f.readline() print filecon #textfile='/tmp/tongji_vb.log' #fp = open(textfile, 'rb') msg = MIMEText(filecon,_subtype='plain',_charset='UTF-8') msg.set_charset('UTF-8') #fp.close() COMMASPACE = ', ' to=['litao@staff.sina.com.cn'] msg['subject']=Header('微博数据库每日信息统计','UTF-8') msg['From'] = 'litao@staff.sina.com.cn' msg['To'] = COMMASPACE.join(to) s = smtplib.SMTP('localhost') s.sendmail('litao@staff.sina.com.cn',to, msg.as_string()) s.quit()
python发带附件的中文邮件
精选 转载下一篇:我的友情链接
![](https://ucenter.51cto.com/images/noavatar_middle.gif)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
linux 发送中文邮件
我们都知道,linux下自带了一个mail命令,使用它可以很容易的发送邮件,有三种方式
配置文件 配置信息 自定义 -
Postfix中文邮件系统+SMTP+Dovecot+Squirrelmail
postfix中文邮件系统 简单配置 [Postalias /etc/aliases 作用] 软件环境: &n
职场 休闲 Postfix中文邮件系统+SMTP+D