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邮箱--设置--帐户安全--开启服务--点击生成授权码--接收短信

见截图

转载于:https://www.cnblogs.com/Elaine1/p/10094330.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值