こんにちは
クリエイターとっちです。
ここ数年、メール送信は、SendGridに頼りっぱなしです。
Laravel(PHP)での組み込みは、SendGrid PHPライブラリをcomposerでインストールして…
といった感じでできたのですが、Flask(Python)では、ライブラリがないっぽい(ものすごい古いのはありましたが…)ので、SMTPのような形式でapi情報を使用して組み込んでみました。
事前準備
flask-mail
docker-composeなどですと、requirements.txtに上記のように記載して起動します。
もちろん、直接、OS上で、pip install flask-mail を実行しても構いません。
あとは、SendGridで、APIキーを用意しておくことですね。
実装
MAIL_SERVER = 'smtp.sendgrid.net'
MAIL_PORT = 587
MAIL_USE_TLS = True
MAIL_USERNAME = 'apikey'
MAIL_PASSWORD = '※ここに、SendGrid管理画面で発行したAPIキーを設定'
MAIL_DEFAULT_SENDER = 'sample@creator-tocchi.net'
MAIL_USERNAMEは、apikeyという固定の文字列を全ユーザ共通で設定します。
from flask_mail import Mail
app = flask(__name__)
# 上記で設定したメール情報(config.py)の呼び込みを行っています。
app.config.from_pyfile('config.py')
mail = Mail()
def create_app():
mail.init_app(app)
...
起動用のPythonファイルにて、flask_mailの初期生成を行っています。
from flask_mail import Message
from app import mail
msg = Message('件名が入ります', recipients='※送信先のメールアドレス')
msg.body = '本文が入ります'
mail.send(msg)
Mail送信を実行します。
このように簡単に実装することができました。
コメント