flask 发送新浪邮箱邮件
邮件的用处很多,如注册时验证用户、找回密码、线上程序出现重大bug时触发邮件提醒以及服务器关键数据(CPU、网络、内存)监控提醒等
安装使用邮件的依赖包
pip install Flask-Mail
配置Flask-Mail
配置项 | 默认值 | 功能 |
MAIL_SERVER | localhost | 邮箱服务器 |
MAIL_PORT 25 | 25 | 端口 |
MAIL_USE_TLS | False | 是否使用TLS |
MAIL_USE_SSL | False | 是否使用SSL |
MAIL_DEBUG | app.debug | 是否为DEBUG模式,打印调试消息 |
MAIL_SUPPRESS_SEND | app.testing | 设置是否真的发送邮件,True不发送 |
MAIL_USERNAME | None | 用户名,填邮箱 |
MAIL_PASSWORD | None | 密码,填授权码 |
MAIL_DEFAULT_SENDER | None | 默认发送者,填邮箱 |
MAIL_MAX_EMAILS | None | 一次连接中的发送邮件的上限 |
MAIL_ASCII_ATTACHMENTS | False | 如果 MAIL_ASCII_ATTACHMENTS 设置成 True 的话,文件名将会转换成 ASCII 的。一般用于添加附件。 |
一个完整可运行的程序:
# -*- coding: utf-8 -*-
from flask import Flask, request
from flask_script import Manager, Shell
from flask_mail import Mail, Message
from threading import Thread
import osapp = Flask(__name__)
app.config['MAIL_SERVER'] = 'smtp.sina.com'
app.config['MAIL_PORT'] = 25
app.config['MAIL_USE_TLS'] = False
app.config['MAIL_USERNAME'] = '' # 你的新浪邮箱
app.config['MAIL_PASSWORD'] = '' # 邮箱密码
mail = Mail(app)msg = Message('标题', sender='开通服务的邮箱', recipients=['接收方邮箱'])
msg.body = '内容'
with app.app_context():mail.send(msg)if __name__ == '__main__':app.run()
上面是一个发送邮件的简单示例,只要运行脚本,就会发送邮件到收件箱。在实际运用中,发送邮件通常需要几秒中,当触发发送邮件条件时我们不会在页面停留等他发完才去进行别的操作,而是为发送邮件服务开启另一个线程,方法:
def send_async_email(app, msg):with app.app_context():mail.send(msg)@app.route('/send_email')
def send_email():msg.body = '内容'thread = Thread(target=send_async_email, args=[app, msg])thread.start()return 'success'
django发邮件类似https://blog.csdn.net/kaikai136412162/article/details/85341878
一个完整的例子
from flask import Flask, request
from flask_script import Manager, Shell
from flask_mail import Mail, Message
from threading import Thread
import osapp = Flask(__name__)
app.config['MAIL_SERVER'] = 'smtp.sina.com'
app.config['MAIL_PORT'] = 25
app.config['MAIL_USE_TLS'] = False
app.config['MAIL_USERNAME'] = 'jienkai136@sina.com'
app.config['MAIL_PASSWORD'] = '密码'
mail = Mail(app)# msg = Message(subject='标题', sender='jienkai136@sina.com', recipients=['136412162@qq.com','1277437268@qq.com'])
msg = Message(subject='标题', sender='jienkai136@sina.com')
# msg.body = '内容'def send_async_email(app, msg):with app.app_context():mail.send(msg)
@app.route('/send_email')
def send_email():msg.recipients=['136412162@qq.com','1277437268@qq.com']msg.body = '内容'thread = Thread(target=send_async_email, args=[app, msg])thread.start()return 'success'
if __name__ == '__main__':app.run()
加油吧,少年!2019.2.13
flask 发送新浪邮箱邮件相关推荐
- 为什么用新浪邮箱收不到Github注册的验证邮件???
注册时首先确保邮箱地址等各项信息没有问题,但是为什么找不到邮件呢???点了重新发送还是没收到??? 这里不难看出新浪邮箱对部分邮件的"选择性"屏蔽.不得不说是有点恶心的,我只能认为 ...
- python 新浪的邮件的发送与接收
邮件的收发 以新浪邮箱为例, 使用SMTP发送一个邮件,使用POP3协议读取邮件列表,下载第一个邮件 from smtplib import SMTP from poplib import POP3 ...
- emacs之使用gnus读取和发送新浪邮件
环境安装 平台需求: linux,windows,osx 软件需求: emacs 详细设置 打开emacs并安装gnus 在.emacs文件中进行配置 (require 'gnus);; 设置自己的默 ...
- Linux上的服务器无法调用新浪邮箱发送邮件
问题背景: 在web网站开发中,有许多功能的实现需要发送邮件,比如用户的密码找回功能,可能就需要通过服务器向用户的注册邮箱发送验证码邮件来实现.而发送邮件功能可以通过很多方式实现,比如HTML中的ma ...
- VC POST表单——登录验证新浪邮箱
1.本机环境: Windows XP SP3.ADSL 2.开发工具: WildPackets OmniPeek V5.1.4 Visual C++ 6.0 IE6.0 FlexEdit V2.3.1 ...
- Java Web(十三) 使用javamail进行发送邮件,(使用QQ,163,新浪邮箱服务器)
加油加油. --WH 一.发送邮件的原理 在了解其原理之前,先要知道两个协议,SMTP和POP3 SMTP:Simple Mail Transfer Protocol,即简单邮件传输协议,发送邮件的协 ...
- web开发(九) 使用javamail进行发送邮件,(使用QQ,163,新浪邮箱服务器)
在网上看见一篇不错的文章,写的详细. 以下内容引用那篇博文.转载于<http://www.cnblogs.com/whgk/p/6506027.html>,在此仅供学习参考之用. 一.发送 ...
- 在foxmail和outlook中设置QQ邮箱、gmail邮箱、新浪邮箱、微软邮箱、网易邮箱等的方法...
怎么用邮件客户端如outlook和foxmail来设置各种邮箱<?xml:namespace prefix = "o" ns = "urn:schemas-micr ...
- 关于 Python3.6.3 写简单发送邮件代码时遇到的新浪邮箱(2018/7/29)的问题
注:作者编程小白,高手勿喷,如有疏漏,还请指正! 近期在跟着廖大大的教程学 Python,正好看到 SMTP发送邮件,于是乎自己尝试了一下,不(好)巧,自己主要用的是新浪邮箱,遇到了一些问题.在此记录 ...
最新文章
- Python中docstring文档的写法
- php strchr和strrchr,strrchr与Strchr
- 宋利兵 mysql_《MySQL 5.7 Replication新特性》分享之互动问题解答
- ReactiveCocoa简单介绍
- Mac 快速修改 hosts 文件
- 2017.3.29 lis 失败总结
- java quartz JobBuilder
- 持续集成部署Jenkins工作笔记0007---配置JDK和Maven并安装Deploy插件
- tasm报错illegal memory reference的解决办法
- 地震matlab频域分析,MATLAB在地震数据分析中的应用
- matlab堆积式玫瑰图,[转帖]堆积式南丁格尔玫瑰图模板
- 软件可靠性测试概念与应用
- javax.mail.MessagingException: Unknown SMTP host: smtp.163.com;
- 【推荐算法论文】矩阵分解算法
- Navicat for mysql 在WIN10下导入SQL不成功解决办法
- WBC世界棒球经典赛
- 【单片机】4.3 中断允许与中断优先级的控制
- Excel中工作表间的关联链接方法
- 计算机组成与设计硬件/软件接口 (MIPS版)
- java单客户端和服务器端