前回はサイトをSSL化しました。
さて、Djangoにはユーザー管理機能が付属していて、すごいのはurls.pyに
urlpatterns = [
path('accounts/', include('django.contrib.auth.urls')),
]
とするだけで、エンドポイント
accounts/login/ [name='login']
accounts/logout/ [name='logout']
accounts/password_change/ [name='password_change']
accounts/password_change/done/ [name='password_change_done']
accounts/password_reset/ [name='password_reset']
accounts/password_reset/done/ [name='password_reset_done']
accounts/reset/<uidb64>/<token>/ [name='password_reset_confirm']
accounts/reset/done/ [name='password_reset_complete']
これらのアカウント管理機能が全て有効になることです。
もしパスワードを忘れた場合には登録メール宛にパスワードリセットメッセージが届く。
そんな便利機能も標準で搭載していますが、メール機能を利用するには当然Django側にメールの設定をする必用があります。
<参考>
[Python] Django 管理サイトのパスワードリセット機能を有効化する - Qiita
調べるとGmailでの設定例が多いのですが、ムームーメールの設定サンプルがありません。少々手間取ったので後の人のためにも備忘録として残します。
ムームーメールはムームドメインで取得した独自ドメインに対して付帯できるメールサービスで、アドレスは作り放題!なんと1ヶ月50円(1年600円)という驚異的な安さのメールサービスです。↓
(機能が違うので比較として適切かは疑問ですが、例えばConohaのメールサーバーなら500円/一ヶ月なので独自ドメインでメールを作るだけならかなりのお得感。)
<参考>Gmailの設定はこちらが参考になります。
[Python] Django 管理サイトのパスワードリセット機能を有効化する - Qiita
- メールアカウント
- メールパスワード
- メールサーバー(SMTP)名
- サーバーポート
で、これらを[アプリ名]/settings.pyに書く事で機能します。
EMAIL_USE_SSL = True
EMAIL_HOST = 'smtp.muumuu-mail.com'
EMAIL_HOST_USER = '[ムームーメールユーザーID]'
EMAIL_HOST_PASSWORD = '[ムームーメールパスワード]'
EMAIL_PORT = 465
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
参考ページと違うのは
です。
TLSとSSLの違いは、SSLの発展形がTLSらしいのですが正直よくわかりません。
とりあえずこれで送信できます。が、そのままパスワードリセット機能でメール送信すると
送信先が「webmaster@localhost.~~」と奇妙なアドレスになります。
これの変更はsetting.pyから
DEFAULT_FROM_EMAIL = '[任意のアドレス]'
とすることで変更できます。
追記:ムームーメールをGmailに送信すると、Gmail側で「迷惑メール」フォルダーに分類されてしまう問題の解決策↓
ちなみに、これはモーモーメール
。。。。。。。orz今回は以上です。