| from threading import Thread | |
| from flask import current_app | |
| from flask_mail import Message | |
| from detectweb import mail | |
| # 异步发送邮件函数 | |
| def send_async_email(app, msg): | |
| with app.app_context(): | |
| mail.send(msg) | |
| def send_email(subject, recipients, text_body, html_body): | |
| # subject主题,接收者, | |
| msg = Message( | |
| subject=subject, | |
| recipients=recipients, | |
| reply_to='noreply@detectweb.com' # 不写sender而写reply_to,使得收到的邮件都被这个邮箱自动删除 | |
| ) | |
| # 文本body | |
| msg.body = text_body | |
| # 看收到邮件的客户端,如果不支持html格式显示,那就用text显示 | |
| msg.html = html_body | |
| # 多线程发送,为了点击发送邮件后不卡住,大概会卡住3-4秒等待邮件去发 | |
| Thread( | |
| target=send_async_email, | |
| args=(current_app._get_current_object(), msg)).start() | |