- Flask 教程
- Flask - 首頁
- Flask - 概述
- Flask - 環境
- Flask - 應用程式
- Flask - 路由
- Flask - 變數規則
- Flask - URL 構建
- Flask - HTTP 方法
- Flask - 模板
- Flask - 靜態檔案
- Flask - 請求物件
- 將表單資料傳送到模板
- Flask - Cookie
- Flask - 會話
- Flask - 重定向和錯誤
- Flask - 訊息閃現
- Flask - 檔案上傳
- Flask - 擴充套件
- Flask – 郵件
- Flask - WTF
- Flask - SQLite
- Flask - SQLAlchemy
- Flask - Sijax
- Flask - 部署
- Flask - FastCGI
- Flask 有用資源
- Flask - 快速指南
- Flask - 有用資源
- Flask - 討論
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 帳戶並訪問此連結以降低安全性。
