Flask-mail
フラスコ–メール
多くの場合、Webベースのアプリケーションには、ユーザー/クライアントにメールを送信する機能が必要です。 Flask-Mail 拡張機能を使用すると、任意の電子メールサーバーと簡単なインターフェイスを簡単にセットアップできます。
最初に、Pipユーティリティを使用してFlask-Mail拡張機能をインストールする必要があります。
pip install Flask-Mail
次に、次のアプリケーションパラメータの値を設定して、Flask-Mailを設定する必要があります。
Sr.No | Parameters & Description |
---|---|
1 |
MAIL_SERVER 電子メールサーバーの名前/IPアドレス |
2 |
MAIL_PORT 使用するサーバーのポート番号 |
3 |
MAIL_USE_TLS Transport Security Layer暗号化を有効/無効にします |
4 |
MAIL_USE_SSL Secure Sockets Layer暗号化の有効化/無効化 |
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モジュールには、以下の重要なクラスの定義が含まれています。
メールクラス
メールメッセージングの要件を管理します。 クラスのコンストラクタは次の形式を取ります-
flask-mail.Mail(app = None)
コンストラクターは、Flaskアプリケーションオブジェクトをパラメーターとして受け取ります。
Mailクラスのメソッド
Sr.No | Methods & Description |
---|---|
1 |
send() Messageクラスオブジェクトの内容を送信します |
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として使用されます。
- ステップ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'] = '[email protected]'
app.config['MAIL_PASSWORD'] = '*****'
app.config['MAIL_USE_TLS'] = False
app.config['MAIL_USE_SSL'] = True
- ステップ3 *-Mailクラスのインスタンスを作成します。
mail = Mail(app)
ステップ4 *-URLルール( ‘/’)*によってマップされたPython関数でメッセージオブジェクトを設定します。
@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シェルで次のスクリプトを実行し、 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アカウントにログインし、https://www.google.com/settings/security/lesssecureapps [this]リンクにアクセスしてセキュリティを低下させてください。