flask_email實現QQ郵箱傳送郵件
阿新 • • 發佈:2019-01-03
直接上程式碼
from flask import Flask
from flask_mail import Mail, Message
from threading import Thread
#使用執行緒程式設計實現非同步傳送,否則服務就會卡主,如果是web的話在傳送完成之前網頁是loading狀態
app = Flask(__name__)
app.config.update(dict(
DEBUG = True,
MAIL_SERVER = 'smtp.qq.com',
MAIL_PORT = 465,
MAIL_USE_TLS = False,
MAIL_USE_SSL = True ,
MAIL_PASSWORD = '**********',#看下面第一張圖
MAIL_USERNAME = '**********@qq.com'
))
mail = Mail(app)
def send_async_email(app,msg):
with app.app_context():
mail.send(msg)
def SendMail():
msg = Message('This is a mail from QQ SMTP HOST',sender='**********@qq.com',\
recipients=["**********@163.com" ])
msg.body = 'From QQ'
msg.html = '<b>Halo the world!</b>'
thr = Thread(target=send_async_email,args=[app,msg])
thr.start()
return 'ok'
SendMail()
基本郵件配置解釋(https://github.com/lavr/flask-emails):
對於MAIL_PASSWORD 這一項所填的並不是你的郵箱登入密碼,而是登入第三方客戶端郵箱的授權碼,對於QQ郵箱可以根據下圖來生成授權碼(設定-》賬戶-》下圖第二個箭頭所指區域)
執行示例截圖:
顯示傳送過程
傳送成功,Bye
登入郵箱查收