DreamerDreamのブログ

夢想家の夢です。〜揚げたてのモヤっとしたものをラフレシアと共に〜

Djangoの使い方⑪Djangoからムームーメールで送信する

 前回はサイトをSSL化しました。

dreamerdream.hateblo.jp

 

さて、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'

参考ページと違うのは

  • EMAIL_USE_TLS ではなく、EMAIL_USE_SSLであること
  • ポート番号が違う事

です。

TLSSSLの違いは、SSLの発展形がTLSらしいのですが正直よくわかりません。

 

とりあえずこれで送信できます。が、そのままパスワードリセット機能でメール送信すると

送信先が「webmaster@localhost.~~」と奇妙なアドレスになります。

これの変更はsetting.pyから

DEFAULT_FROM_EMAIL = '[任意のアドレス]'

とすることで変更できます。

 

追記:ムームーメールをGmailに送信すると、Gmail側で「迷惑メール」フォルダーに分類されてしまう問題の解決策↓ 

dreamerdream.hateblo.jp

 

 

 

 

f:id:DreamerDream:20190222142847p:plain

ちなみに、これはモーモーメール

 

。。。。。。。orz今回は以上です。 

kampa.me