English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
ウェブアプリケーションは通常、ユーザーに/クライアントがメールを送信する機能。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。
番号 | パラメータ | 説明 |
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モジュールには以下の重要なクラスの定義が含まれています。
これは電子メールメッセージの要件を管理します。クラスのコンストラクタは以下の形式を取ります。 -
番号 | メソッド | 説明 |
1 | send() | Messageクラスオブジェクトの内容を送信します。 |
2 | connect() | メールホストとの接続を開きます。 |
3 | send_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)
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アカウントにログインして、以下にアクセスしてください このリンクセキュリティを低下させる。