自动化框架中会用到通过邮件发送测试报告的功能,需要用到python的email
库和smtplib
库
下面以具体代码来说明:
这里首先用到一个类型MIMEMultipart()
,用来处理正文及附件。
添加一个MIMEmultipart类,处理正文及附件
message = MIMEMultipart()
message['From'] = EmailSetting['这里填写发送邮箱']
message['Subject'] = 'xxxxx接口测试报告'
打开文件,并且读取文件内容,设置html格式
with open(EmailSetting['filename'], 'rb') as f:
content = f.read()
f.close()
设置html格式参数
part1 = MIMEText(content, 'html', 'utf-8')
message.attach(part1)
插入附件
att1 = MIMEText(open(EmailSetting['filename'], 'rb').read(), 'base64', 'utf-8')
att1["Content-Type"] = 'application/octet-stream'
att1["Content-Disposition"] = 'attachment; filename="test_result.html"'
message.attach(att1)
发送邮件,smtp_server:邮箱服务器 smtp_port:端口
server = smtplib.SMTP(EmailSetting['smtp_server'], EmailSetting['smtp_port'])
server.set_debuglevel(1)
server.starttls()
server.login(EmailSetting['这里填写发送邮箱'], EmailSetting['这里填写密码'])
server.sendmail(EmailSetting['这里填写发送邮箱'], EmailSetting['这里填写接收邮箱'], message.as_string())
server.quit()
完整代码:
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
from email.mime.multipart import MIMEMultipart
import smtplib
from config.Global import EmailSetting
def SendEmail():
def _format_addr(s):
name, addr = parseaddr(s)
return formataddr((Header(name, 'utf-8').encode(), addr))
# 设置eamil信息
# 添加一个MIMEmultipart类,处理正文及附件
message = MIMEMultipart()
message['From'] = EmailSetting['from_addr']
message['Subject'] = 'xxxxx接口测试报告'
with open(EmailSetting['filename'], 'rb') as f:
content = f.read()
f.close()
# 设置html格式参数
part1 = MIMEText(content, 'html', 'utf-8')
message.attach(part1)
# 插入附件
att1 = MIMEText(open(EmailSetting['filename'], 'rb').read(), 'base64', 'utf-8')
att1["Content-Type"] = 'application/octet-stream'
att1["Content-Disposition"] = 'attachment; filename="test_result.html"'
message.attach(att1)
# 发送邮件
server = smtplib.SMTP(EmailSetting['smtp_server'], EmailSetting['smtp_port'])
server.set_debuglevel(1)
server.starttls()
server.login(EmailSetting['from_addr'], EmailSetting['password'])
server.sendmail(EmailSetting['from_addr'], EmailSetting['to_addr'], message.as_string())
server.quit()
EmailSetting中的配置:
EmailSetting = {
# --------------邮箱信息配置---------------
'filename': 'C:\\Users\\Administrator\\Desktop\\test_result.html', # 附件地址
'from_addr': 'xxx@qq.com', # 发件人
'password': '123456', # 密码
'to_addr': ['123@qq.com'], # 收件人,添加多个收件人时用“,”隔开
'smtp_server': 'smtp.exmail.qq.com', # 邮箱服务器
'smtp_port': 25 # 邮箱端口
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。