• python利用smtplib模块发送邮件


      通常在自动化过程中,我们希望在脚本运行完成后自动发送测试结果邮件给相关领导和负责人,python自带发送邮件模块:smtplib,今天我们来了解一下如何利用smtplib完成这个过程,以qq邮箱为例

    在此附上代码:

     1 import smtplib
     2 import time
     3 from email.mime.multipart import MIMEMultipart
     4 from email.mime.text import MIMEText 
     5 from email.mime.application import MIMEApplication
     6 from common import project_path
     7 
     8 #邮件发送的用户名和密码  常识:第三方授权码
     9 _user = "xxx@qq.com"
    10 _pwd = "xxxx"
    11 
    12 now = time.strftime('%Y-%m-%d_%H_%M_%S')#获取时间戳
    13 
    14 class sendEmail:
    15     def send_email(self,email_to,filepath):
    16         #email_to  收件方
    17         #filepath 你要发送附件的地址
    18         #如名字所示Multipart就是分多个部分
    19         msg = MIMEMultipart()
    20         msg["Subject"] = now+"Elaine的测试报告"
    21         msg["From"]  = _user
    22         msg["To"]   = email_to
    23 
    24         #---这是文字部分---
    25         part = MIMEText("这次是自动化测试结果,请查收!")
    26         msg.attach(part)
    27 
    28         #---这是附件部分---
    29         part = MIMEApplication(open(filepath,'rb').read())
    30         part.add_header('Content-Disposition', 'attachment', filename=filepath)
    31         msg.attach(part)
    32         # s = smtplib.SMTP_SSL("smtp.qq.com", timeout=30)#连接smtp邮件服务器,端口默认是25
    33         s=smtplib.SMTP("smtp.qq.com", 25)
    34         s.ehlo()
    35         s.login(_user, _pwd)#登陆服务器
    36         s.sendmail(_user, email_to, msg.as_string())#发送邮件
    37         s.close()
    38 
    39 if __name__ == '__main__':
    40     sendEmail().send_email("1067110652@qq.com",project_path.report_path)

    需要注意的点是:

    第三方客户端登陆QQ邮箱需要开启POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,登陆邮箱密码为第三方授权码,具体步骤:登陆qq邮箱--设置--帐户安全--开启服务--点击生成授权码--接收短信

    见截图

  • 相关阅读:
    实现可折叠的列表
    ajax知识点补充
    Ajax 完整教程
    从页面左边飞入页面动画效果
    文字闪烁
    点击按钮之后等待60秒
    [SCOI2016]萌萌哒
    [HNOI2011]卡农
    [NOI2015]寿司晚宴
    【bzoj 3489】A simple rmq problem
  • 原文地址:https://www.cnblogs.com/Elaine1/p/10094330.html
Copyright © 2020-2023  润新知