Djangoでメール送信の設定を「django.utils.log.AdminEmailHandler」で紹介しているブログ[1]はよくあるのですが、「logging.handlers.SMTPHandler」で設定しているブログがなかったため、公式サイト[2]を調べながら設定しました。
目次
ロガーの設定
handlers
にemail
、loggers
にsendmail
を追加します。
TLSを使うためにsecureに空のタプルを送る必要があるのがポイント!
・上の例ではGメールを想定していますが、使用するメーラーによってEMAIL_*
系の変数は変更してください。
・handlers
のemail
、loggers
のsendmail
の設定は、ご自分の環境に合わせて設定してください。
※補足 独自アプリでGメールを使うにはアプリパスワードが必要です。詳しくは「DjangoでGメールを送る方法」をご覧ください。
メールを送信してみる
せっかくなので、Gメールへの送信を確認しています。
ここでは、sendmailというコマンドを作成しようと思います。
事前準備 コマンド関連ファイルの作成
myappというアプリにコマンドを追加していきます。
コマンドファイルを作成
メールを送信してみる
コマンド実行
$ python manage.py sendmail --send
以下のようにメールが届くはずです。
参考
[1] Django エラー時にメールを送信する
[2] logging.handlers --- ロギングハンドラ
以上!
コメント