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使用的更多相关文章

  1. flask_mail发送163邮件,报553错误的原因

    最近在练习用flask_mail发送163邮件时报错: reply: '553 authentication is required,163 smtp9,DcCowAD3eEQZ561caRiaBA- ...

  2. 2018.4.24 flask_mail使用

    #!/flask/bin/python # -*- coding: utf-8 -*- from threading import Thread from flask import Flask fro ...

  3. flask_mail发送邮件(附源码)

    文章介绍如何用flask_mail发送QQ邮件,发送其它邮箱简单的更改相应配置即可 传送门:源代码 源代码地址:https://github.com/1417766861/flask_mail 首先展 ...

  4. flask-mail发送QQ邮件代码示例(亲测可行)

    from flask import Flask from flask_mail import Mail, Message app = Flask(__name__) app.config.update ...

  5. flask 扩展之 -- flask-mail

    Flask-Mail 封装了 python 标准库 smtplib 包, 以便于更好的与 Flask 集成. 一. 安装 $ pip install flask-mail 二. 配置 及 初始化 Fl ...

  6. python web -- flask

    Flask是一个简洁的 Python_web 框架. 零. virtualenv 虚拟环境配置. $ easy_install pip $ pip install virtualenv $ virtu ...

  7. flask-日料网站搭建

    引言:想使用python的flask框架搭建一个日料网站,主要包含web架构,静态页面,后台系统,交互. 本节知识:搭建web目录,目前正在copy网站. python环境:python2.7,fla ...

  8. flask入门与发送邮件与QQ邮箱

    前言: 快两个月没写博客了, 原因是懒了, 没有最初写博客那种看到阅读量上涨, 别人给自己文章点赞后的开心. 心态也发生了不少变化. 有机会再来写写. 前两个月我去厦门某公司实习, 本着去厦门玩一玩还 ...

  9. Flask 扩展 Mail

    安装 pip install flask-mail from flask import Flask from flask_mail import Mail, Message app = Flask(_ ...

随机推荐

  1. top中的wa的理解

    CPU使用率:参考 mpstat 手册,%usr + %nice + %sys + %iwoait + %irq + %soft + %steal + %guest + %gnice + %idle ...

  2. 详解python3如何调用c语言代码

    本文链接:https://blog.csdn.net/u012247418/article/details/80170690开发环境linux: python3.5.2 + ubuntu-gnome- ...

  3. semi-join子查询优化 -- semi-join Materialization策略

    semi-join Materialization 是用于semi-join的一种特殊的子查询物化技术.通常包含两种策略:1.Materialization/lookup2.Materializati ...

  4. sass、less和stylus 相同与不同

    sass.less和stylus的安装使用和入门实践 https://www.jianshu.com/p/1eaf366814e2 stylus 基础教程 https://blog.csdn.net/ ...

  5. Shell中的通配符

    shell常见的通配符,注意与正则稍有不同: 字符 含义 实例 * 匹配0个或多个任意字符 a*b,a与b之间可以有任意长度的字符,也可以没有. 例如:aabcb,ab,azxcb... ? 匹配一个 ...

  6. Bcrypt.check_pass/3 用法

    defmodule My do defstruct password: "", apassword_hash: "", aencrypted_password: ...

  7. Postman 使用方法详细介绍

    1,下载安装: https://www.getpostman.com/apps 2,打开Postman,如图所示: 3,创建一个接口项目 4,新增接口文件 5,下面以登录接口login为例,介绍如何做 ...

  8. ENSP静态链路聚合实验配置要点及实例

    链路聚合分为:静态链路聚合.动态链路聚合链路聚合的负载分担模式:对于二层数据流,系统会根据MAC地址(源mac地址和目的mac地址来计算),而对于三层数据流则会根据ip地址来进行负载分担计算. 静态链 ...

  9. 嵌入式qt显示中文和隐藏鼠标

    最近项目快接近尾声了,要把项目移植到板子上,但是板子上的系统没有安装字库,导致中文无法显示,并且有一个很讨厌的鼠标光标(又没有鼠标),上网找了一些解决方案,记录一下 qt显示中文: 如果你急于在ARM ...

  10. Automatically generating nice graphs at end of your Load Test with Apache JMeter and JMeter-Plugins

    Update as of November 2017: Since JMeter 3.0, last version being 3.3, JMeter provides Out Of The Box ...