最近在做接口自动化方面的工作,每次运行完接口都需要打开输出的excel文件,尤其是一下子运行好几个接口的时候,感觉不是很方便,于是想着能不能运行完接口后,将接口运行结果直接发送邮件,在邮件里看结果还是很方便的(至少省去了打开excel文件,嘿嘿)
在网上一搜索一大堆python发送邮件的教程和案例,唯独没有一个能直接运行就能成功的,真是应了那句话,不是自己体味的人生,宁可不要,好吧。。。
note:
1.要想邮箱能够发送自动发送邮件,首先必须打开邮箱的设置-->授权服务(自行百度,这个简单)
2.发送邮件的代码里,有一个login,需要输入密码,一定记得是授权码的密码啊,而并非邮箱的登录密码,这个纠缠了好久
#!/usr/bin/python
# -*- coding: UTF-8 -*-
importsmtplib
fromemail.mime.textimportMIMEText
fromemail.headerimportHeader
fromemail.utilsimportformataddr
fromemail.mime.multipartimportMIMEMultipart
# from email.MIMEText import MIMEText
# from email.MIMEMultipart import MIMEMultipart
from_addr='xxxxx@163.com' #发件人邮箱
to_addr='xxxx@xxxx.com'# 接收邮件,可设置为你的QQ邮箱或者其他邮箱
mail_server='smtp.163.com' #发件邮箱的服务器
# mail_server = 'smtp.exmail.qq.com' # 如果发件邮箱是腾讯企业邮,则用这个
mail_port=25 #默认是25,如果使用了SSL,是465
subject='this is subject ooooo'
user = from_addr
password = "********" #这个密码是发件邮箱的授权码
def mail():
try:
msg=MIMEText(subject,'plain','utf-8')
msg['from']=from_addr
msg['to']=to_addr
msg['subject']=subject
server=smtplib.SMTP()
server.connect(mail_server,mail_port)
server.login(user,password)
server.sendmail(from_addr,[to_addr],msg.as_string())
server.quit()
returnTrue
exceptException,e:
printstr(e)
returnFalse
ret=mail()
ifret:
print'ok'
else:
print'failed'