Flask-mail

提供:Dev Guides
移動先:案内検索

フラスコ–メール

多くの場合、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]リンクにアクセスしてセキュリティを低下させてください。

セキュリティの低下