编程技术文章分享与教程

网站首页 > 技术文章 正文

代码实现发邮件功能需要注意的问题

hmc789 2024-11-08 19:43:24 技术文章 1 ℃

发邮件功能

发送邮件的几个要素:

第一步:

在公共包(common)里面,新建发送邮件的py文件(send_email.py)


from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import smtplib
from email.header import Header

def send_email(test_report):
with open(test_report, 'r', encoding='utf-8') as f:
mail_body = f.read()

content = '<html><h3 style = "color:blue">各位好,附件是本次自动化测试报告,请查阅,谢谢!</h3></html>'
att = MIMEText(mail_body, 'base64', 'utf-8')
att['content-type'] = 'application/octet-stream'
att.add_header('Content-Disposition', 'attachment', filename=('utf-8', '', "test-report.html"))
msg = MIMEText( content,'html', 'utf-8')

msg_all = MIMEMultipart('related')
msg_all['Subject'] = Header('自动化测试报告', "utf-8")

print('添加附件')
msg_all.attach(att)
print('添加成功')
msg_all.attach(msg)

# 创建连接对象并连接
smtp = smtplib.SMTP_SSL('smtp.163.com', 465)
smtp.connect('smtp.163.com', 465)

# 登录服务器
smtp.login('*******001@163.com', '此处填写授权码') #邮箱 & 授权码

msg_from = '***********@163.com' #发件箱
msg_to = "*********@qq.com, ***********@163.com" #收件箱
msg_all['From'] = msg_from
msg_all['To'] = msg_to
try:
smtp.sendmail(from_addr=msg_all['From'],to_addrs=msg_all['To'].split(','), msg=msg_all.as_string())
print("发送成功")
except Exception as e:
print(e)
print("发送失败")
finally:
smtp.quit()

第二步:

在run.py文件中,加入以下红色框的内容 [查找最新的报告(find_report)],并发送邮件

标签列表
最新留言