6.1为我们的web程序添加发送邮件的功能
2018-03-05 15:48
344 查看
——————————————————————前言————————————————————————————
为了和用户进行沟通, 我们在web程序中添加发送邮件的功能。
————————————————————————————————————————————————————
&export MAIL_USERNAME=1660513198@qq.com
&export MAIL_PASSWORD=zwafjugafahqehic
&export FLASKY_ADMIN=15789653214@163.com
运行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.
为了和用户进行沟通, 我们在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.
相关文章推荐
- 8.3 为我们的web程序添加登录功能——flask-login
- net控件中数据导到Excel的格式 首先,我们了解一下excel从web页面上导出的原理。当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。下面就列出常用的一些格式: 1) 文本
- 在java程序中实现发送邮件的功能
- 在web中实现邮件发送功能
- 地址主题java项目中添加邮件发送功能(使用apache commons mail开源项目)
- 在java程序中实现发送邮件的功能
- 后台自动发送邮件的程序(java mail,web版)①
- 如何为Spring Web程序添加log4j功能
- C#程序集成LOTUS邮件发送功能,实现办公自动化
- 构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输 推荐
- 在java程序中实现发送邮件的功能
- 后台自动发送邮件的程序(java mail,web版)②
- loner_li web版 简单的发送邮件功能实现(带上传附件)
- 在嵌入式系统添加邮件发送功能---支持带SSL的GMAIL邮箱
- System.Web.Mail.MailMessage邮件发送程序(asp.net)
- 后台自动发送邮件的程序(Java Mail,WEB版)
- php实现在站点里面添加邮件发送的功能
- 基于python的图形化邮件发送程序(支持添加附件)
- Rails测试《十一》添加邮件发送程序及测试邮件发送程序
- JNDI(二)编写具有SMTP服务器功能的邮件发送程序