在python开发项目或者做自动化测试时候,在测试完成后需要将测试结果总结后进行上报,那么我们就可以通过发送邮件来完成这项工作。
下面我们来看看python中怎么发送邮件的,python中发送邮件可以使用smtplib模块或者yagmail模块,其实yagmail模块里面已经封装了smtplib模块,所以下面我们直接学习下yagmail模块发送邮件。模块可在我的网盘下载:https://pan.baidu.com/s/1hvS78sv6-XOwBLXLOIa5GQ,下载之后pip install yagmail-0.10.212-py2.py3-none-any.whl,然后直接import导入即可。代码如下:
import yagmail
username = '123456789@qq.com' #发送者账号
passwd = 'xxxxxxxxxxxxxx' #发送者授权码,如果不需要授权码就写成密码
mail = yagmail.SMTP(user=username,
password=passwd,
host='smtp.qq.com', #邮箱地址
smtp_ssl=True
) #如果用的是qq邮箱或者你们公司的邮箱使用是安全协议的话,需要加上smtp_ssl=True
mail.send(
to=['123123123@qq.com','16774483@qq.com'], #收件人邮箱,如果多个收件人的话,写成list就行了
cc='789789789@qq.com',#抄送者邮箱,如果是多人,写成list
subject='学习发送邮件',#邮件标题
contents='你好,你今天开心吗?',#邮件正文
attachments=[r'D:syz_pythoncodeday9签名规则',
r'D:syz_pythoncodeday9继承.py']) #发送附件,如果是win10系统,发送时找不到附件就将附件地址写成r'D:\syz_python\code\day9\签名规则'
print('发送成功')
当然,我们可以封装成一个函数,使用的时候,直接调用函数,传入邮箱账号密码,收件人,发件人,标题和内容即可。
import yagmail
def send_mail(username,passwd,rece,title,cc,content,atta,mail_host = 'smtp.qq.com'):
mail = yagmail.SMTP(user = username,password = passwd,host = mail_host,smtp_ssl = True)
mail.send(to = rece,cc = cc,subject = title,contents = content,attachments = atta)
print('发送成功!')