【Django】500エラーをメールで通知しよう!
views.py
from django.core.mail import send_mail #追加 def mail(request): form = mail_form() #i = 1 + 'a' # 後で500エラーを出すために使う send_mail( 'Subject here', 'Here is the message.', '送信元@gmail.com', ['送信先@gmail.com'], fail_silently=False, ) return render(request,'mail.html',form)
settings.py
#メールを通知する EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.googlemail.com' EMAIL_USE_TLS = True EMAIL_PORT = 587 EMAIL_HOST_USER = 'mail@gmail.com' EMAIL_HOST_PASSWORD = 'password'
複数人にccで送ることができるそうです。
まずはdjangoでメールが扱えるかどうかを確認しましょう。
settings.py
SERIALIZATION_MODULES = True ADMINS = (('name', 'mail1@gmail.com'), ('name', 'mail2@gmail.com')) DEBUG = False
上記を書いてviews.pyの1+'a'で意図的に500エラーを出しましょう。
無事メールが受信されました。
もし受信されなかったら
viewsのsend_mail()にsubject、message、from_email、recipient_listの最低4つが設定されている。
settingsにMIDDLEWARE_CLASSES 設定に CommonMiddleware を入れてみてください。
https://django-docs-ja.readthedocs.io/en/1.0-maint/ref/settings.html#serialization-modules
参考:
メールを送信する | Django ドキュメント | Django
エラーのレポート | Django ドキュメント | Django
https://django-docs-ja.readthedocs.io/en/1.0-maint/howto/error-reporting.html