フラスコ–メール
多くの場合、Webベースのアプリケーションには、ユーザー/クライアントにメールを送信する機能が必要です。 Flask-Mail 拡張機能を使用すると、任意の電子メールサーバーとの単純なインターフェイスを非常に簡単に設定できます。
最初に、Flask-Mail拡張機能をpipユーティリティを使用してインストールする必要があります。
pip install Flask-Mail
次に、以下のアプリケーションパラメータの値を設定してFlask-Mailを設定する必要があります。
シニア番号 | パラメータと説明 |
---|---|
1 |
MAIL_SERVER メールサーバーの名前/ IPアドレス |
2 |
MAIL_PORT 使用したサーバーのポート番号 |
3 |
MAIL_USE_TLS Transport SecurityLayer暗号化を有効/無効にします |
4 |
MAIL_USE_SSL Secure SocketsLayer暗号化を有効/無効にします |
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(app = None)
コンストラクターは、Flaskアプリケーションオブジェクトをパラメーターとして受け取ります。
Mailクラスのメソッド
シニア番号 | 方法と説明 |
---|---|
1 |
send() メッセージクラスオブジェクトの内容を送信します |
2 |
connect() メールホストとの接続を開きます |
3 |
send_message() メッセージオブジェクトを送信します |
メッセージクラス
電子メールメッセージをカプセル化します。メッセージクラスコンストラクタにはいくつかのパラメータがあります-
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として使用されています。
Step 1 −コード内のflask-mailモジュールからMailおよびMessageクラスをインポートします。
from flask_mail import Mail, Message
Step 2 −次に、Flask-Mailは次の設定に従って構成されます。
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
Step 3 −Mailクラスのインスタンスを作成します。
mail = Mail(app)
Step 4 −URLルールでマッピングされたPython関数でMessageオブジェクトを設定する (‘/’)。
@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"
Step 5−コード全体を以下に示します。Pythonシェルで次のスクリプトを実行し、http://localhost: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'] = '[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 message sent from Flask-Mail"
mail.send(msg)
return "Sent"
if __name__ == '__main__':
app.run(debug = True)
Gmailサービスに組み込まれているセキュリティ機能により、このログイン試行がブロックされる場合があることに注意してください。セキュリティレベルを下げる必要があるかもしれません。Gmailアカウントにログインし、このリンクにアクセスしてセキュリティを強化してください。