Flask – 郵件



Web 應用程式通常需要具有向用戶/客戶端傳送郵件的功能。Flask-Mail 擴充套件使使用任何郵件伺服器設定簡單的介面變得非常容易。

首先,應使用 pip 實用程式安裝 Flask-Mail 擴充套件。

pip install Flask-Mail

然後,需要透過設定以下應用程式引數的值來配置 Flask-Mail。

序號 引數和描述
1

MAIL_SERVER

郵件伺服器的名稱/IP 地址

2

MAIL_PORT

使用的伺服器埠號

3

MAIL_USE_TLS

啟用/停用傳輸安全層加密

4

MAIL_USE_SSL

啟用/停用安全套接字層加密

5

MAIL_DEBUG

除錯支援。預設為 Flask 應用程式的除錯狀態

6

MAIL_USERNAME

發件人的使用者名稱

7

MAIL_PASSWORD

發件人的密碼

8

MAIL_DEFAULT_SENDER

設定預設發件人

9

MAIL_MAX_EMAILS

設定要傳送的最大郵件數

10

MAIL_SUPPRESS_SEND

如果 app.testing 設定為 true,則傳送被抑制

11

MAIL_ASCII_ATTACHMENTS

如果設定為 true,則將附加的檔名轉換為 ASCII

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

Mail 類

它管理電子郵件訊息要求。該類的建構函式採用以下形式:

flask-mail.Mail(app = None)

建構函式以 Flask 應用程式物件作為引數。

Mail 類的 方法

序號 方法和描述
1

send()

傳送 Message 類物件的內容

2

connect()

與郵件主機開啟連線

3

send_message()

傳送訊息物件

Message 類

它封裝了一個電子郵件訊息。Message 類建構函式有幾個引數:

flask-mail.Message(subject, recipients, body, html, sender, cc, bcc, 
   reply-to, date, charset, extra_headers, mail_options, rcpt_options)

Message 類方法

attach() - 將附件新增到訊息。此方法採用以下引數:

  • filename - 要附加的檔名

  • content_type - 檔案的 MIME 型別

  • data - 原始檔案資料

  • disposition - 內容處置(如果有)。

add_recipient() - 向訊息新增另一個收件人

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

步驟 1 - 從 flask-mail 模組中的程式碼匯入 Mail 和 Message 類。

from flask_mail import Mail, Message

步驟 2 - 然後根據以下設定配置 Flask-Mail。

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 - 建立 Mail 類的例項。

mail = Mail(app)

步驟 4 - 在 URL 規則('/')對映的 Python 函式中設定 Message 物件。

@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 - 下面給出了整個程式碼。在 Python Shell 中執行以下指令碼,然後訪問https://:5000/。

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 服務中的內建安全功能可能會阻止此登入嘗試。您可能需要降低安全級別。請登入您的 Gmail 帳戶並訪問連結以降低安全性。

Decrease the Security
廣告

© . All rights reserved.