博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
6.1为我们的web程序添加发送邮件的功能
阅读量:4094 次
发布时间:2019-05-25

本文共 2278 字,大约阅读时间需要 7 分钟。

——————————————————————前言————————————————————————————

为了和用户进行沟通, 我们在web程序中添加发送邮件的功能。

————————————————————————————————————————————————————

一. 安装flask-mail扩展

&pip install flask-mail

二. 修改hello.py文件

from flask-mail import Mail#设置config字典app.config['MAIL_SERVER'] = 'smtp.qq.com'  #邮件服务器app.config['MAIL_PORT'] = 587    #发送邮件的端口app.config['MAIL_USE_TLS'] = True    #安全传输协议开关app.config['MAIL_USERNAME'] = os.environ.get('MAIL_USERNAME')  #邮件用户名app.config['MAIL_PASSWORD'] = os.environ.get('MAIL_PASSWORD')  #邮件用户密码app.config['FLASKY_MAIL_SENDER'] = '1660705191@qq.com'  #发件人, 可与邮件用户名相同app.config[FLASKY_MAIL_SUBJECT_PREFIX'] = '[Flasky]'  #邮件主题前缀app.config['FLASKY_ADMIN'] = os.environ.get('FLASKY_ADMIN')  #程序管理员邮箱地址mail = MAIL(app)  #初始化扩展#发送邮件函数def send_mail(to, subject, template, **kwargs):   msg = Message(app.config['FLASKY_MAIL_SUBJECT_PREFIX']+subject, sender=os.config['FLASKY_MAIL_SENDER'], recipients=[to])  #创建邮件    msg.body = render_template(template+'.txt', **kwargs)    msg.html = render_template(template+'.html, **kwargs')  #定义邮件内容 模板内容见文末    mail.send(msg)  #发送邮件#视图函数@app.route('/', methods=['GET', 'POST']) def index():    form = NameForm()    if form.validate_on_submit():        user = User.query.filter_by(username=form.name.data).first()        if not user:  #如果数据库中无此用户            user = User(username=form.name.data)            db.session.add(user)            session['known'] = False            if app.config['FLASKY_ADMIN']:  #如果存在管理员邮箱地址                send_mail(app.config['FLASKY_ADMIN'], 'New User', 'mail/new_user', user=user)  #给管理员发送邮件        else:            session['known'] = True        session['name'] = form.name.data        form.name.data = ''        return redirect(url_for('index'))    return render_template('index.html', name=session.get(name), known = session.get('known'), form=form)

三. 在终端导入环境变量

注意一定不要忘记导入环境变量, 之后config字典才能用os.environ.get语句获得变量值

&export MAIL_USERNAME=1660513198@qq.com

&export MAIL_PASSWORD=zwafjugafahqehic

&export FLASKY_ADMIN=15789653214@163.com

四. 运行web程序

打开数据库:

运行web程序:

在浏览器输入根地址127.0.0.1:5000:

在文本框输入Dave并点击提交按钮:

此时数据库多了一个Dave用户:

并且管理员收到一封邮件:

再次在文本框输入Dave并点击提交按钮:

可根据视图函数来分析浏览器界面的变化。

附.模板内容

mail/new_user.txt

User {

{ user.username }} has joined.

mail/new_user.html

User <b>{

{ user.username}}</b> has joined.

   

  

   

你可能感兴趣的文章
卧槽!Java 虚拟机竟然还有这些性能调优技巧...
查看>>
听说玩这些游戏能提升编程能力?
查看>>
7 年工作经验,面试官竟然还让我写算法题???
查看>>
被 Zoom 逼疯的歪果仁,造出了视频会议机器人,同事已笑疯丨开源
查看>>
上古语言从入门到精通:COBOL 教程登上 GitHub 热榜
查看>>
再见,Eclipse...
查看>>
超全汇总!B 站上有哪些值得学习的 AI 课程...
查看>>
如果你还不了解 RTC,那我强烈建议你看看这个!
查看>>
神器面世:让你快速在 iOS 设备上安装 Windows、Linux 等操作系统!
查看>>
沙雕程序员在无聊的时候,都搞出了哪些好玩的小玩意...
查看>>
太赞了!GitHub 标星 2.4k+,《可解释机器学习》中文版正式开放!
查看>>
程序员用 AI 修复百年前的老北京视频后,火了!
查看>>
漫话:为什么你下载小电影的时候进度总是卡在 99% 就不动了?
查看>>
我去!原来大神都是这样玩转「多线程与高并发」的...
查看>>
当你无聊时,可以玩玩 GitHub 上这个开源项目...
查看>>
B 站爆红的数学视频,竟是用这个 Python 开源项目做的!
查看>>
安利 10 个让你爽到爆的 IDEA 必备插件!
查看>>
自学编程的八大误区!克服它!
查看>>
GitHub 上的一个开源项目,可快速生成一款属于自己的手写字体!
查看>>
早知道这些免费 API,我就可以不用到处爬数据了!
查看>>