Flask异步发送邮件

from flask import Flask
from flask.ext.mail import Mail, Message
from threading import Thread

app = Flask(__name__)

app.config.update(dict(
    MAIL_SERVER=‘smtp.qq.com‘,
    MAIL_PORT=587,
    MAIL_USE_TLS=True,
    MAIL_USERNAME = ‘[email protected]‘, #use to send email
    MAIL_PASSWORD=‘yyy‘ #password
))

mail = Mail(app)

def send_async_email(msg):
    with app.app_context():
        mail.send(msg)

def send_email():
    msg = Message(‘Hello, World!‘, #主题
   sender=app.config[‘MAIL_USERNAME‘],  #发件人
   recipients=[‘[email protected]‘] #收件人
    )
    msg.body = "Hello" #纯文本正文
    msg.html = "World" #富文本正文(测试时邮件显示这个内容)
    thr = Thread(target=send_async_email, args=[msg])
    thr.start()
    return thr   

@app.route(‘/‘)
def index():
    send_email()
    return ‘<h1>Hello,World!</h1>‘

if __name__ == ‘__mian__‘:
    app.run()
时间: 2024-11-13 08:23:34

Flask异步发送邮件的相关文章

pythonWeb框架flask中使用blinker信号机制解耦业务代码解决ImportError: cannot import name &#39;app&#39;,以异步发送邮件为例

百度了大半天,不知道怎么搞,直到学习了blinker才想到解决办法,因为之前写java都是文件分开的, 所以发送邮件业务代码也放到view里面,但是异步线程需要使用app,蛋疼的是其他模块不能从app.py导入任何变量: 即: app.py是主文件,view.py是业务文件, 我需要在view中使用app中的变量,怎么办,百度了很多,没有找到方法 这里可以用信号实现,先记录一下: python3内置了blinker,可以直接使用,首先在view里定义信号: 然后在app.py里面连接需要使用的函

【demo】自己写的一个 SpringMail 异步发送邮件的demo。 javamail 邮件异步发送

原文:[demo]自己写的一个 SpringMail 异步发送邮件的demo. javamail 邮件异步发送 源代码下载地址:http://www.zuidaima.com/share/1550463483120640.htm [demo]自己写的一个 SpringMail 异步发送邮件的demo. javamail 邮件异步发送 (注意 配置里面的账号跟发件人账号要一致) 1. 请各位在跑单元测试的时候,在 spring-mail.xml 文件中配置自己的邮箱账号和密码 (我已经注释掉了)

Flask Mail 对异步发送邮件进行封装

安装 pip install Flask-Mail Config.py class Config: SQLALCHEMY_TRACK_MODIFICATIONS = False SQLALCHEMY_ECHO = False MAIL_SERVER = 'smtp.126.com' MAIL_USERNAME = '[email protected]' MAIL_PASSWORD = 'xxx' 新建py文件send_mail.py:然后新建一个类BaseMail  继承Flask Mail的

利用Guzzle实现另一种PHP异步发送邮件(laravel5.4)

前言:第二种实现方法 方法的思路: 此方法的实现需要借助Guzzle这个PHP的HTTP客户端,用来轻而易举地发送请求,并集成到我们的WEB服务上(laravel中如何引入guzzle不多说) 使用该方法所实现的异步为让发送邮件的请求在不需要等待回应的情况下都发出,即只要循环触发方法,分开发送,分开响应,可以监控, guzzle中文文档: http://guzzle-cn.readthedocs.io/zh_CN/latest/quickstart.html 过程: 该方法为邮件内容处理,然后调

Flask 异步化

web网站包含前端和后端, 异步处理可以用在前端, 也可以用在后端.  前端 jquery 进行 ajax 请求时, 可设置 async 属性为 true, 并为 success 设置一个 callback 函数, 在服务端返回之前, 浏览器可以执行 ajax 之后的代码, 当服务器端返回后, jquery会执行 success 回调. 后端的视图函数也可以引入这种异步处理机制,  发扬广大的是nodejs了, nodejs web服务单线程异步处理方式, 一般来讲, nodejs 框架的并发性

Celery异步发送邮件

一.编写 tasks.py 在项目根目录下创建包和py文件 发送邮件代码如下 1 from django.core.mail import send_mail 2 from django.conf import settings 3 from celery import Celery 4 5 6 # 在任务处理者一端加这几句 7 import os 8 import django 9 os.environ.setdefault("DJANGO_SETTINGS_MODULE", &qu

异步发送邮件、短信、微信

用户创建订单的按钮点击后,服务器存储这个订单信息后,调用发送短信.邮件.微信的接口,发送消息.而发送短信.邮件.微信都要涉及第三方的处理,服务器又要发送一个新的包裹给一个新的服务器,告诉他帮我发一个信息出去.这往往是一个漫长.且不可测的过程. 因此势必增加异步操作,先返回给客户订单创建成功,然后慢慢发送信息出去. 1.先记录要发送的内容.地址 2.通知发件模块 3.发件模块读取发送内容.地址,发送信息 4.更新发送结果到系统. 5.回掉发送完成后的一些善后任务.

python 异步发送邮件 aiosmtplib

aiosmtplib is an asynchronous SMTP client for use with asyncio.项目地址 与 smtplib的用法大体相同 for example import asyncio from email.mime.text import MIMEText from email.utils import parseaddr, formataddr from email.header import Header import aiosmtplib impor

django中使用celery异步发送邮件问题

通过提示说明Celery 4.x 需要Django1.11或者后面的版本,可是使用的是django1.8.2的版本,最先以为是自己什么地方配置出错了,找了很久也没有找到. 任务队列启动没错,任务处理启动也没问题,打开输入地址就报错. 最终看到使用的是Celery4.3.0,然后改成4.1.1版本就可以使用了. 具体问题没找到,应该是新版本加入了一些东西,以后再来研究. 原文地址:https://www.cnblogs.com/-666/p/11279843.html