有个需求,利用python脚本发出来的邮件的内容是从文件读取的。并且保持这个文件原有的格式。

#!/usr/bin/env python

#-*- coding: UTF-8 -*-
import smtplib,os,sys
from email.mime.text import MIMEText

mailto_list=['guomaoqiu@gmail.com‘]
mail_host=’smtp.qq.com’
mail_port=’25’
mail_user=’2399447849’
mail_pass=’xxxxxxxxx’ #->你懂的…
mail_postfix=’qq.com’

filename = “/tmp/test.log” #->将要读取作为邮件内容的文件

fo = open(filename,”rb”)
filecon = fo.read();
str1 = “

{0}
“.format(filecon)

def send_mail(to_list,sub,content):
me=”Code Sync Notice”+”<”+mail_user+”@”+mail_postfix+”>”
msg = MIMEText(content,_subtype=’html’,_charset=’utf-8’)
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,”New Flies Are Added”,str1):
print “发送成功”
else:
print “发送失败”

执行结果: [

Screenshot from 2015-09-10 22:26:00](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/09/Screenshot-from-2015-09-10-222600.png)
Screenshot from 2015-09-10 22:26:00](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/09/Screenshot-from-2015-09-10-222600.png)
之前出现一个问题,就是我在文件读取之后写成这样的,未对读入的字符串格式格式化。

fo = open(filename,”rb”)
filecon = fo.read();
str1 = filecon

而这样发出来的邮件结果却是这样的 [

Screenshot from 2015-09-10 22:28:19](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/09/Screenshot-from-2015-09-10-222819.png)
Screenshot from 2015-09-10 22:28:19](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/09/Screenshot-from-2015-09-10-222819.png)
发送 HTML 形式的邮件,需要 email.mime.text 中的 MIMEText 的 _subtype 设置为 html,并且 _text 的内容应该为 HTML 形式 可参考:http://m.blog.chinaunix.net/uid-23802873-id-4477364.html