1. 程式人生 > 實用技巧 >Flask 傳送電子郵件

Flask 傳送電子郵件

使用163郵箱作為郵件傳送郵箱,使用qq郵箱接收電子郵件

from flask import Flask
from flask_mail import Mail, Message
 
app = Flask(__name__)
# 給flask配置檔案新增配置資訊
# 這個配置資訊類似一個字典,可以追加資料
app.config.update(
    DEBUG = True,
    MAIL_SERVER='smtp.163.com',
    MAIL_PORT=465,
    MAIL_USE_TLS = False, # SSL(Security Socket Layer,安全套接字層)和TLS(Transport Layer Sceurity,傳輸層安全)是兩種常用的電子郵件安全協議
    MAIL_USE_SSL = True,
    MAIL_USERNAME = '[email protected]',
    MAIL_PASSWORD = 'xxx', # 授權碼而不是郵箱登入密碼。
)
 
# 建立郵件物件工具
mail = Mail(app)

# 非同步傳送電子郵件
from threading import Thread
def send_async_email(app,msg):
    mail.send(msg)

def send_email(subject, sender, recipients, text_body, html_body):
    msg = Message(subject, sender=sender, recipients=recipients) # # sender 傳送方郵箱,recipients 接受方郵箱列表
    msg.body = text_body # 純文字資訊
    msg.html = html_body # HTML格式的資訊
    Thread(target=send_async_email,args=(app,msg)).start()
 
@app.route('/email')
def index():
    send_email('test subject',app.config['MAIL_USERNAME'],['[email protected]'], 'text body','<b>HTML</b> body')
    return '傳送成功'
   
 
if __name__ == '__main__':
    app.run(port=5001, debug=True)