Flask 發(fā)送郵件

基于Web的應(yīng)用程序通常需要具有向用戶/客戶端發(fā)送郵件的功能。 Flask-Mail擴(kuò)展使得用任何電子郵件服務(wù)器設(shè)置一個(gè)簡單接口變得非常簡單。

起初,F(xiàn)lask-Mail擴(kuò)展可使用pip工具來安裝,如下所示 -

# Filename : example.py
# Copyright : 2020 By Nhooo
# Author by : www.soo66.com
# Date : 2020-08-08
pip install Flask-Mail

然后需要通過設(shè)置以下應(yīng)用程序參數(shù)的值來配置Flask-Mail。

編號(hào)參數(shù)描述
1MAIL_SERVER郵件服務(wù)器的名稱/IP地址
2MAIL_PORT所用服務(wù)器的端口號(hào)
3MAIL_USE_TLS啟用/禁用傳輸安全層加密
4MAIL_USE_SSL啟用/禁用安全套接字層加密
5MAIL_DEBUG調(diào)試支持,默認(rèn)是Flask應(yīng)用程序的調(diào)試狀態(tài)
6MAIL_USERNAME發(fā)件人的用戶名
7MAIL_PASSWORD發(fā)件人的密碼
8MAIL_DEFAULT_SENDER設(shè)置默認(rèn)發(fā)件人
9MAIL_MAX_EMAILS設(shè)置要發(fā)送的最大郵件
10MAIL_SUPPRESS_SEND如果app.testing設(shè)置為true,則發(fā)送被抑制
11MAIL_ASCII_ATTACHMENTS如果設(shè)置為true,則將附加的文件名轉(zhuǎn)換為ASCII

flask-mail模塊包含以下重要類的定義。

Mail類

它管理電子郵件消息的要求。 類構(gòu)造函數(shù)采用以下形式 -

編號(hào)方法描述
1send()發(fā)送Message類對象的內(nèi)容
2connect()與郵件主機(jī)打開連接
3send_message()發(fā)送消息對象

Message類

它封裝了一封電子郵件,Message類的構(gòu)造函數(shù)有幾個(gè)參數(shù) -

# Filename : example.py
# Copyright : 2020 By Nhooo
# Author by : www.soo66.com
# Date : 2020-08-08
flask-mail.Message(subject, recipients, body, html, sender, cc, bcc, 
    reply-to, date, charset, extra_headers, mail_options, rcpt_options)

Message類方法

attach() - 向消息添加附件。 該方法采用以下參數(shù) - filename - 要附加的文件的名稱 content_type - 文件的MIME類型 data - 原始文件數(shù)據(jù) disposition - 內(nèi)容處置,如果有的話。

add_recipient() - 向消息添加另一個(gè)收件人

在以下示例中,Google的Gmail服務(wù)的SMTP服務(wù)器用作Flask-Mail配置的MAIL_SERVER。

第1步 - 在代碼中從flask-mail模塊導(dǎo)入Mail和Message類。

# Filename : example.py
# Copyright : 2020 By Nhooo
# Author by : www.soo66.com
# Date : 2020-08-08
from flask_mail import Mail, Message

第2步 - 然后根據(jù)以下設(shè)置配置Flask-Mail。

# Filename : example.py
# Copyright : 2020 By Nhooo
# Author by : www.soo66.com
# Date : 2020-08-08
app.config['MAIL_SERVER']='smtp.gmail.com'
 app.config['MAIL_PORT'] = 465
 app.config['MAIL_USERNAME'] = 'yourId@gmail.com'
 app.config['MAIL_PASSWORD'] = '*****'
 app.config['MAIL_USE_TLS'] = False
 app.config['MAIL_USE_SSL'] = True

第3步 - 創(chuàng)建一個(gè)Mail類的實(shí)例。

# Filename : example.py
# Copyright : 2020 By Nhooo
# Author by : www.soo66.com
# Date : 2020-08-08
mail = Mail(app)

第4步 - 在由URL規(guī)則映射的Python函數(shù)(‘/‘)中設(shè)置Message對象。

# Filename : example.py
# Copyright : 2020 By Nhooo
# Author by : www.soo66.com
# Date : 2020-08-08
@app.route("/")
 def index():
     msg = Message('Hello', sender = 'yourId@gmail.com', recipients = ['id1@gmail.com'])
     msg.body = "This is the email body"
     mail.send(msg)
     return "Sent"

第5步 - 整個(gè)代碼如下。 在Python Shell中運(yùn)行以下腳本并訪問URL: http://localhost:5000/。

# Filename : example.py
# Copyright : 2020 By Nhooo
# Author by : www.soo66.com
# Date : 2020-08-08
from flask import Flask
 from flask_mail import Mail, Message
 app =Flask(__name__)
 mail=Mail(app)
 app.config['MAIL_SERVER']='smtp.gmail.com'
 app.config['MAIL_PORT'] = 465
 app.config['MAIL_USERNAME'] = 'yourId@gmail.com'
 app.config['MAIL_PASSWORD'] = '*****'
 app.config['MAIL_USE_TLS'] = False
 app.config['MAIL_USE_SSL'] = True
 mail = Mail(app)
 @app.route("/")
 def index():
     msg = Message('Hello', sender = 'yourId@gmail.com', recipients = ['id1@gmail.com'])
     msg.body = "Hello Flask message sent from Flask-Mail"
     mail.send(msg)
     return "Sent"
 if __name__ == '__main__':
     app.run(debug = True)

請注意,Gmail服務(wù)中的內(nèi)置不安全功能可能會(huì)阻止此登錄嘗試,可能需要降低安全級別。 請登錄到您的Gmail帳戶并訪問  此鏈接以降低安全性。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清