自动化测试发送带附件的邮件
标签(空格分隔): 带附件邮件
在我们的自动化测试中,有时候会发送报告,有时候会发送带附件的报告,具体带附件的报告怎么操作呢?
具体的步骤如下述所示:如下是QQ邮箱为例
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart # 用于传送附件
smtpserver = 'smtp.exmail.qq.com'
user = '***@zhan.com'
#这里是邮箱的授权码
password = '****'
#这里是发送者,收件者的邮箱的定义
sender = '****@zhan.com'
receiver = '***@qq.com'
# 发送邮件的标题和内容
subject = 'web selenium 自动化测试报告'
content = '<html><h1 style = "color:red">测试报告2017</h1></html>'
# 构造附件内容
send_file = open(r"H:\l.png", 'rb').read()
att = MIMEText(send_file, 'base64', 'utf-8')
att['Content-Type'] = 'application/octet-stream'
att['Content-Disposition'] = 'attachment;filename="l.png"'
# 构建发送与接收信息
msgRoot = MIMEMultipart()
msgRoot.attach(MIMEText(content, 'html', 'utf-8'))
msgRoot['subject'] = subject
#这里填写发送邮箱,和收件邮箱
msgRoot['from'] = '****@zhan.com'
msgRoot['To'] = '****@qq.com'
msgRoot.attach(att)
# ssl 协议端口号要使用465
smtp = smtplib.SMTP_SSL(smtpserver, 465)
# 向用户表示用户的身份
smtp.helo(smtpserver)
# 服务器返回结果确认
smtp.ehlo(smtpserver)
# 登录邮箱服务器用户名和密码
smtp.login(user, password)
print("发送邮件")
smtp.sendmail(sender, receiver, msgRoot.as_string())
smtp.quit
print("邮件发送完成")