English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Flask メール送信

ウェブアプリケーションは通常、ユーザーに/クライアントがメールを送信する機能。Flask-Mailエクステンションは、どんなメールサーバーでも簡単なインターフェースで設定できるようにしました。

最初に、Flask-Mailエクステンションはpipツールを使用してインストールできます。以下のように。 -

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ja.oldtoolbag.com
# Date : 2020-08-08
pip install Flask-Mail

次に、以下のアプリケーションパラメータの値を設定してFlaskを構成する必要があります-Mail。

番号パラメータ説明
1MAIL_SERVERメールサーバーの名前/IPアドレス
2MAIL_PORT使用するサーバーのポート番号
3MAIL_USE_TLS有効にする/トランスポートセキュリティレイヤーの暗号化を無効にする
4MAIL_USE_SSL有効にする/安全スロークレイテリングを無効にする
5MAIL_DEBUGデバッグサポート、デフォルトではFlaskアプリケーションのデバッグ状態
6MAIL_USERNAME送信者のユーザー名
7MAIL_PASSWORD送信者のパスワード
8MAIL_DEFAULT_SENDERデフォルトの送信者を設定
9MAIL_MAX_EMAILS送信する最大のメールを設定
10MAIL_SUPPRESS_SENDapp.testingがtrueに設定されている場合、送信が抑制されます。
11MAIL_ASCII_ATTACHMENTStrueに設定されている場合、添付ファイルの名前をASCIIに変換します。

flask-mailモジュールには以下の重要なクラスの定義が含まれています。

Mailクラス

これは電子メールメッセージの要件を管理します。クラスのコンストラクタは以下の形式を取ります。 -

番号メソッド説明
1send()Messageクラスオブジェクトの内容を送信します。
2connect()メールホストとの接続を開きます。
3send_message()メッセージオブジェクトを送信します。

Messageクラス

これは一通の電子メールを封装し、Messageクラスのコンストラクタにはいくつかの引数があります。 -

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ja.oldtoolbag.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() - メッセージに添付ファイルを追加します。このメソッドは以下の引数を取ります。 - filename - 添付するファイルの名前 content_type - ファイルのMIMEタイプ data - オリジナルのファイルデータ disposition - コンテンツ処理(あれば)。

add_recipient() - メッセージに別の受信者を追加します。

以下の例では、GoogleのGmailサービスのSMTPサーバーがFlask-Mailの設定のMAIL_SERVERから

第1ステップ - コードからflask-mailモジュールからMailとMessageクラスをインポートします。

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ja.oldtoolbag.com
# Date : 2020-08-08
from flask_mail import Mail, Message

第2ステップ - 次の設定に基づいてFlaskを構成します。-Mail。

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ja.oldtoolbag.com
# Date : 2020-08-08
app.config['MAIL_SERVER']='smtp.gmail.com'
 app.config['MAIL_PORT'] = 465
 app.config['MAIL_USERNAME'] = '[email protected]'
 app.config['MAIL_PASSWORD'] = "*****"
 app.config['MAIL_USE_TLS'] = False
 app.config['MAIL_USE_SSL'] = True

第3ステップ - Mailクラスのインスタンスを作成します。

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ja.oldtoolbag.com
# Date : 2020-08-08
mail = Mail(app)

第4ステップ - URLルールにマッピングされたPython関数(/)内でMessageオブジェクトを設定します。

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

第5ステップ - 以下はコード全体です。Python Shellで以下のスクリプトを実行し、URLにアクセスしてください: http://localhost:5000/。

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ja.oldtoolbag.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'] = '[email protected]'
 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 = '[email protected]', recipients = ['[email protected]'])
     msg.body = "Hello Flask メッセージ sent from Flask-Mail"
     mail.send(msg)
     return "Sent"
 if __name__ == '__main__':
     app.run(debug=True)

ご注意ください、Gmailサービス内の組み込みの不安全な機能がこのログイン試みを阻止する可能性があります。セキュリティレベルを低下させる必要があるかもしれません。Gmailアカウントにログインして、以下にアクセスしてください  このリンクセキュリティを低下させる。