大家好~我是
米洛
!
我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的教程
,希望大家多多支持。
欢迎关注我的公众号米洛的测开日记
,获取最新文章教程!
回顾
上一节我们初步发送了测试邮件,由于定时任务的存在,导致我的邮箱还一直有收到每天测试计划的执行记录
。
但它总归是一个半成品,只有空荡荡的文字信息,所以我们还是得适当对他美化一下。
成果展示
功夫不负有心人,忙碌了1个多小时的米师傅
终于搞出了像样点的邮件报告:
当然,这里只有样式哈,(因为数据我暂时是写死的)。
开始研究(卷王模式)
其实有时候我一直在想,如果没有antd
和element-ui
,那我写的东西该多么丑陋
。
这其实也说明了,本人前端功底真的是太不扎实了,也只有用这样的组件才能拯救自己
了。
好了,认清现实以后,我不打算自己手撸css样式了。于是我开始找有没有啥好看的邮件模板
,你别说,还真给我找到了。
看了一下,是某鹅云
的邮件模板,看起来还是很好看的。作者给出了对应的源码:
emmm,源码贴了以后效果不好,有需要的可以私信我。
想起来我还没解释为什么要手撸css,因为在邮件里,虽然支持你使用html
作为正文,但是它有一些限制
。
- 无法使用js
所以点击事件我们用链接来完成 - 只对行内样式能友好支持
这2点就很让人难受了,所以我这边就打算借鉴他人的代码,在他们基础上修改
。
接下来干嘛
拿到这块代码以后,首先我想的是把它改成jinja2的模板代码,预置对应的话术,在需要动态展示的地方用{{变量}}
进行替换。相信大家写过旧时代,前后端一体web系统的时候都用过template,也就对这种方式(模板引擎)很熟悉。
我们通过jinja2生成html,发送html邮件到对应的接收人就好了。
但html里面样式虽然正常,到了邮件又会怎么样呢?我们试试看
调整样式
可以看到里面有很多变量,到时候都会通过jinja2
传递进去。
然后我为了测试效果,先写死了数据:
用yagmail测试
由于yagmail很易用,所以我们之前都是用它来发送邮件。那么它发html邮件效果会咋样呢?
但这怎么能摧毁我的斗志呢?
于是我决定试试最原始的smtplib
,说实话,现在不查资料我完全不会用的一个库:
发现样式没问题,但要点击显示图片
才能展示图片,这个显然在可以接受的范围,因为我看阿里云的图片也被屏蔽了。zzz
所以我们还是采用smtplib
来发邮件吧~~~
最后附上粗略版的发邮件代码,备个份。
import smtplib
from email.mime.text import MIMEText
from email.header import Header
sender = 'xxx@126.com'
password="客户端token"
receivers = ['xxxx@qq.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
mail_msg = """html代码"""
message = MIMEText(mail_msg, 'html', 'utf-8')
message['From'] = 'wuranxu1993@126.com'
message['To'] = Header("测试", 'utf-8')
subject = 'Python SMTP 邮件测试'
message['Subject'] = Header(subject, 'utf-8')
try:
smtp = smtplib.SMTP()
smtp.connect('smtp.126.com')
# 我们用set_debuglevel(1)就可以打印出和SMTP服务器交互的所有信息。
# smtp.set_debuglevel(1)
smtp.login(sender, password)
smtp.sendmail(sender, receivers, message.as_string())
except Exception as e:
print(e)
下一节咱们直接完成邮件通知
这块内容,敬请期待。