flask_mail使用
python3里发送邮件使用smtplib模块,内置得,不用下载安装,直接导入即可
smtplib使用实例
import smtplib
from email.mime.text import MIMEText sender='1402015437@qq.com'
receivers=['565770751@qq.com']
message = MIMEText('python发送邮件内容',_subtype='plain',_charset='utf-8')
message['Subject'] ='python邮件发送标题'
message['From'] =sender
message['To'] = ";".join(receivers)
server = smtplib.SMTP()
server.connect('smtp.qq.com',25)
server.login('1402015437@qq.com','xxx邮箱密文,这是不是填密码')
server.sendmail(sender,receivers,message.as_string())
server.close()
print('发送成功')
flask里集成了邮件模块,使用得是flask_mail模块
相关代码:
先定义模块,mail.py文件
from flask_mail import Mail,Message
mail=Mail() class Mail():
##发送邮件
@classmethod
def send_mail(self,subject,recipients,content):
try:
message = Message(subject=subject, recipients=recipients, body=content)
mail.send(message)
except Exception as e:
print(e)
raise
项目结构目录:

需要去配置文件里加入一下代码
MAIL_SERVER = 'smtp.qq.com'
MAIL_USE_TLS = False
MAIL_USE_SSL = True
MAIL_PORT = 465
MAIL_USERNAME = '1402015437@qq.com'
MAIL_PASSWORD ='XXXXX' #生成的授权码
##默认发件人的邮箱,这里填写和MAIL_USERNAME一致即可
MAIL_DEFAULT_SENDER = "1402015437@qq.com"

##初始化邮件
from app.tool.mail import mail
mail.init_app(app) 调用邮件方法:新建一个user.py
from app.web import web
from app.tool.mail import Mail
from flask import render_template,request,jsonify
import random
@web.route('/user/findpwd',methods=['GET','POST'])
def find_password():
if request.method=='POST':
try:
email=request.form.get('email') content='您的验证码是:'+"".join(random.sample('zyxwvutsrqponmlkjihgfedcba',5))
print(content)
Mail.send_mail('flask-mail',[email],content )
return jsonify({"status":True, "result":"发送成功"})
except Exception as e:
return jsonify({"status":False,"msg":"错误原因:"+str(e)})
print(e)
else:
return render_template('reset_password.html') def send_mail():
pass
templates里得html页面代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>找回密码</title>
<link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="http://cdn.bootcss.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
</head>
<body>
<div class="layui-container">
<h3>找回密码</h3>
<input type="text" class="layui-input" id="email" value="565770751@qq.com">
<br>
<input type="button" id='btn_submit' value="提交" class="layui-btn layui-btn-danger">
</div> <script type="text/javascript">
$(function () {
$("#btn_submit").click(function () { $.ajax(
{
type:"POST",
url:"/user/findpwd",
data:{"email":$("#email").val()},
success:function (data)
{ alert(data.result)
} })
})
})
</script>
</body>
</html>
flask_mail使用的更多相关文章
- flask_mail发送163邮件,报553错误的原因
最近在练习用flask_mail发送163邮件时报错: reply: '553 authentication is required,163 smtp9,DcCowAD3eEQZ561caRiaBA- ...
- 2018.4.24 flask_mail使用
#!/flask/bin/python # -*- coding: utf-8 -*- from threading import Thread from flask import Flask fro ...
- flask_mail发送邮件(附源码)
文章介绍如何用flask_mail发送QQ邮件,发送其它邮箱简单的更改相应配置即可 传送门:源代码 源代码地址:https://github.com/1417766861/flask_mail 首先展 ...
- flask-mail发送QQ邮件代码示例(亲测可行)
from flask import Flask from flask_mail import Mail, Message app = Flask(__name__) app.config.update ...
- flask 扩展之 -- flask-mail
Flask-Mail 封装了 python 标准库 smtplib 包, 以便于更好的与 Flask 集成. 一. 安装 $ pip install flask-mail 二. 配置 及 初始化 Fl ...
- python web -- flask
Flask是一个简洁的 Python_web 框架. 零. virtualenv 虚拟环境配置. $ easy_install pip $ pip install virtualenv $ virtu ...
- flask-日料网站搭建
引言:想使用python的flask框架搭建一个日料网站,主要包含web架构,静态页面,后台系统,交互. 本节知识:搭建web目录,目前正在copy网站. python环境:python2.7,fla ...
- flask入门与发送邮件与QQ邮箱
前言: 快两个月没写博客了, 原因是懒了, 没有最初写博客那种看到阅读量上涨, 别人给自己文章点赞后的开心. 心态也发生了不少变化. 有机会再来写写. 前两个月我去厦门某公司实习, 本着去厦门玩一玩还 ...
- Flask 扩展 Mail
安装 pip install flask-mail from flask import Flask from flask_mail import Mail, Message app = Flask(_ ...
随机推荐
- CentOS 7镜像下载
官网下载链接:http://isoredirect.centos.org/centos/7/isos/x86_64/ step1: 进入下载页,选择阿里云站点进行下载 Actual Country ...
- Flutter中管理路由栈的方法和应用
原文地址:https://www.jianshu.com/p/5df089d360e4 本文首先讲的Flutter中的路由,然后主要讲下Flutter中栈管理的几种方法. 了解下Route和Navig ...
- django项目模型字段
一个模型(model)就是一个单独的.确定的数据的信息源,包含了数据的字段和操作方法.通常,每个模型映射为一张数据库中的表. 基本的原则如下: 每个模型在Django中的存在形式为一个Python类 ...
- 又一神器框架:linq.js
1.支持jQuery插件的方式.jquery.linq.min.js. 2.也可以像普通js方法一样使用.linq.min.js. 3.当然用习惯VS的童鞋肯定希望有个良好的智能感知,是的,它支持. ...
- [LeetCode] 60. Permutation Sequence 序列排序
The set [1,2,3,…,n] contains a total of n! unique permutations. By listing and labeling all of the p ...
- [LeetCode] 437. Path Sum III 路径和 III
You are given a binary tree in which each node contains an integer value. Find the number of paths t ...
- nvm安装、解决nvm command not found问题、卸载
安装 nvm是node的包版本管理工具,github地址如下:nvm 安装命令 1 curl -o- https://raw.githubusercontent.com/creationix/nvm/ ...
- kexue shangwang002
需先搭建 openvpn 海外服务端, 具体参考 https://www.cnblogs.com/weifeng1463/p/11041550.html 选择阿里云华东ecs 搭建openvpn 的客 ...
- 【计算机视觉】PASCAL VOC数据集分析
PASCAL VOC数据集分析 PASCAL VOC为图像识别和分类提供了一整套标准化的优秀的数据集,从2005年到2012年每年都会举行一场图像识别challenge. 本文主要分析PASCAL V ...
- Linux下的JMeter部署及使用
之前都是在windows环境使用JMeter,是有操作界面的.但是最近需要在Linux环境下使用,现将操作步骤记录下来 在安装JMeter之前,需要在Linux下安装JDK并配置环境变量,这里跳过 1 ...