巨人の肩の上に登る

先人の積み重ねた発見に基づいて、なにかを発見しようとすることを指す。

PythonとFlaskでメール送信と簡易SMTP Server

flask-mailでメールの送信

Flask extensionのflask-mailを使うと、簡易に実装できます。

インストール
$ sudo pip install Flask-Mail

使い方

まずは、Mailのインスタンスを作成。

from flask import Flask
from flaskext.mail import Mail

app = Flask(__name__)
mail = Mail(app)

そして、送信。HTMLとプレーンテキストを個別に設定できます。

from flaskext.mail import Message

@app.route("/")
def index():
    msg = Message("ここにタイトルがはいります",
                  sender="from@example.com",
                  recipients=["to@example.com"])
 msg.body = "testing"
 msg.html = "<b>testing</b>"
 mail.send(msg)

より詳細な設定は、公式ドキュメントを参照されたい。

Pythonで簡易SMTP Server

local環境で、メールのテストを行いときに使います。

python -m smtpd -n -c DebuggingServer localhost:25

余談

flask-mailの公式ドキュメントには、下記(-)のように記載されているのですが、そのままだとErrorを吐きます。そこで、Flask extensionsの説明にあるように下記(+)のように修正しました。

- from flaskext.mail import Mail
- from flaskext.mail import Message
+ from flask.ext.mail import Mail
+ from flask.ext.mail import Message