在这个实验中还是比较顺风顺水的,只不过Web端集成的时候遇到点小问题,是说send函数必须要在应用上下文中执行,需要放在app.app_context()中~
这里我自己写了一个mail.py文件,专门用来发送一封简单的邮件,然后再让主函数来调用它,在init.py文件里面对邮件进行初始化,mail.py直接引用就可以了~
ailx10
10w+ 次咨询
网络安全优秀回答者
网络安全硕士
去咨询
1、使用Flask-Mail提供邮件支持
废话不多说,先安装flask-mail
2、发个QQ邮件
需要先配置一下QQ邮箱,在「设置-》账号」里面,开启SMTP服务器
发送邮件的效果如下
from flask_mail import Mail,Message
from flask import Flask
app = Flask(__name__)
app.config["MAIL_SERVER"] = "smtp.qq.com"
app.config["MAIL_PORT"] = 465
app.config['MAIL_USE_SSL'] = True
app.config['MAIL_USE_TLS'] = False
app.config["MAIL_USERNAME"] = "************@qq.com"
app.config["MAIL_PASSWORD"] = "************"
mail = Mail(app)
msg = Message("测试",
sender="************@qq.com",
recipients=["************@qq.com"])
msg.body = "这是一个邮件内容"
with app.app_context():
mail.send(msg)
3、在应用中集成电子邮件发送功能
啥也不说了,先看效果,很炸裂有木有,以后可以批量发,定时发,拐弯抹角发~
其实在做的过程中,我也是遇到了一点小麻烦,不积小流无以成江河~
这个时候,我就可以在后台生成一个随机字符串,通过邮件发送给注册用户的邮箱~
然后用户激活的时候,需要输入这个随机字符串,这不就成了嘛~
Web端的效果是这样的:请输入你的邮箱
- 如果是首次注册,会发送一封邮件,并提示:「买瓶水,交个朋友」
- 如果不是首次注册,会提示:「老朋友,又见面了,Flag已经在你的邮箱里~」
CTF竞赛之WEB安全入门
作者 ailx10
去查看
本篇完,谢谢大家~
发布于 2021-01-17 22:42 (知乎)