Webベースのアプリケーションには、通常、ユーザー/クライアントにメールを送信する機能が必要です。 Flaskには、メールを送信するためのすぐに使用できるソリューションがありません。
代わりに、Flask-Mail拡張機能を使用すると、任意の電子メールサーバーとの単純なインターフェイスを簡単に確立できます。
電子メールは通常、メールの送信用(smtp)とメールの受信用(pop3)の2つのプロトコルを使用します。 この記事はメールの送信についてです。
関連コース: Python Flask:Flaskを使用してWebアプリを作成する
前書き
まず、pipユーティリティを使用してFlask-Mail拡張機能をインストールする必要があります。
次に、次のアプリケーションパラメータの値を設定して、Flask-Mailを設定する必要があります。
- MAIL_SERVER
- MAIL_USE_TLS
- MAIL_USE_SSL
- MAIL_DEBUG
- MAIL_USERNAME
- MAIL_PASSWORD
- MAIL_DEFAULT_SENDER
- MAIL_MAX_EMAILS
- MAIL_SUPPRESS_SEND
- MAIL_ASCII_ATTACHMENTS
フラスコメールモジュールには、次の重要なクラスの定義が含まれています。
Mailクラスは、電子メールメッセージングの要件を管理します。クラスコンストラクターは、次の形式を取ります。
1 |
flask-mail.Mail(app = None) |
メールクラスのメソッドは次のとおりです。 send()
、 connect()
そして send_message()
。
Messageクラスは電子メールをカプセル化しました。Messageクラスコンストラクターにはいくつかのパラメーターがあります。
1 |
flask-mail.Message(subject, recipients, body, html, sender, cc, bcc, |
メッセージクラスメソッドattach()-メールの添付ファイルを追加します。このメソッドは次のパラメータを取ります。
- ファイル名:ファイルの名前
- content_type:MIMEタイプ
- データ-ファイルデータ
使用できます add_recipient()
メッセージに別の受信者を追加します。
メールの設定と機能
以下の例では、Google gmailサービスのSMTPサーバーが、Flask-Mail構成のMAIL_SERVERとして使用されています。
ステップ1:コード内のflask-mailモジュールからMailクラスとMessageクラスをインポートします。
1 |
from flask_mail import Mail, Message |
ステップ2:サーバーパラメーターを構成する
1 |
app.config['MAIL_SERVER']='smtp.gmail.com' |
手順3:Mailクラスのインスタンスを作成します。
ステップ4:メッセージオブジェクトは、URLルール(「/」)によってマップされるPython関数に設定されます。
1 |
|
フラスコメールの例
コード全体は次のとおりです。Pythonシェルで次のスクリプトを実行し、アクセスします。 localhost:5000 /。
1 |
from flask import Flask |
Gmailサービスのセキュリティにより、このログイン試行を防ぐことができることに注意してください。 Gmail SMTPサーバーを使用している場合は、セキュリティレベルを下げる必要があるかもしれません。
Hope this helps!
Source link