python学习笔记(十九)发送邮件

      在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_python\code\day9\签名规则',
                 r'D:\syz_python\code\day9\继承.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('发送成功!')

 

posted @ 2018-05-21 11:01  西瓜汁拌面  阅读(217)  评论(0编辑  收藏  举报