zoukankan      html  css  js  c++  java
  • Python自动化测试发送邮件太麻烦?!一起聊一聊 Python 发送邮件的3种方式

    1. 前言

    发送邮件,我们在平时工作中经用到,做为测试人员,在自动化测试中用的也比较多,需要发送邮件给某领导

     SMTP是Python默认的邮件模块,可以发送纯文本、富文本、HTML 等格式的邮件

    今天我们来说一说Python 发送邮件的 3 种方式

    2. 开启邮箱SMTP服务和获取授权码

    登录 QQ 邮箱为例,我们需要开启 SMTP 服务,登录邮箱依次点击设置-账户

     开启SMTP

    然后,生成授权码

    注:

    需要开启POP3/SMTP服务

    授权码做为邮箱密码

    1. 方式一:smtplib

    smtplib是 Python 自带的依赖库,可以直接导入使用,通过邮箱账号、授权码、邮箱服务器地址初始化一个 SMTP 实例,然后进行连接

    初学者感觉这个会挺复杂,请继续往下看

    1.1发送纯文本邮件

    运行结果:

     注:SMTP邮件个人不推荐使用,所以只演式一种发送纯文本邮件


    2. 方式二:zmail

    由于SMPT太过于麻烦复杂,所以就用zamil发送邮件试试。

    zmail模块只支持Python3模块,该模块为第3方模块,需自行安装(pip install zmail)


    使用 Zmail 发送接收邮件方便快捷,不需手动添加服务器地址、端口以及适合的协议,可以轻松创建 MIME 对象和头文件
    注意:Zmail 仅支持 Python3,不支持 Python2

    #!/usr/bin/python3
    
    import zmail
    
    
    def send_mail():
        # 定义邮件
        mail = {"subject": "接口测试报告",# 任一填写
                'content_text': '手机号归属地_API自动化测试报告',# 任一填写
                # 多个附件使用列表
                "attachments": "E:/report/result.html"
                }
        # 自定义服务器
        server = zmail.server("发送人邮箱.com",
                              "QQ邮箱是用授权码",
                              smtp_host="smtp.qq.com",
                              smtp_port = 465)
        # 发送邮件
        server.send_mail("收件人QQ邮箱", mail)
    
    try:
        send_mail()
    except FileNotFoundError:
        print("未找到文件")
    else:
        print("发送成功")

    3. 方式三:yagmail

    他们都说yagmail 只需要三行代码,就可以实现发送邮件,爽歪歪!

    相比 zmail,yagmail 实现发送邮件的方式更加简洁优雅

    首先,安装依赖库(pip install yagmail)

    发送邮件有三个步骤:

    1、连接服器(类似你先要登录邮箱)

    2、编辑邮件内容和主题

    3、发送邮件

    #!/usr/bin/python3
    
    import yagmail
    
    
    # 定义用户名、授权码、服务器地址且连接服务器
    
    mail_server = yagmail.SMTP(user='发件人邮箱', passwd='授权码', host='smtp.qq.com')
    
    # 发送对象列表
    Email_to = ['收件人邮箱']
    subject = '任一填写'
    Email_text = "任一填写内容"
    # 多个附件用逗号隔开
    attachments = ['html报告目录地址']
    
    # 发送邮件
    mail_server.send(Email_to, subject, Email_text, attachments)

    最后

    总结了 Python3种发送 邮件的方式,实际项目中,更推荐使用后两种方式


      如果对软件测试、接口测试、自动化测试、技术同行、持续集成、面试经验交流。感兴趣可以进到902061117,群内会有不定期的分享测试资料。
      如果文章对你有帮助,麻烦伸出发财小手点个赞,感谢您的支持,你的点赞是我持续更新的动力。

  • 相关阅读:
    [BZOJ3751] [NOIP2014] 解方程 (数学)
    [BZOJ4198] [Noi2015] 荷马史诗 (贪心)
    [BZOJ4034] [HAOI2015] T2 (树链剖分)
    [BZOJ1880] [Sdoi2009] Elaxia的路线 (SPFA & 拓扑排序)
    [BZOJ1088] [SCOI2005] 扫雷Mine
    [BZOJ1004] [HNOI2008] Cards (Polya定理)
    [BZOJ1009] [HNOI2008] GT考试 (KMP & dp & 矩阵乘法)
    [BZOJ1503] [NOI2004] 郁闷的出纳员 (treap)
    [BZOJ1059] [ZJOI2007] 矩阵游戏 (二分图匹配)
    BZOJ2626: JZPFAR
  • 原文地址:https://www.cnblogs.com/zzpython/p/13305061.html
Copyright © 2011-2022 走看看