djangoのlogging設定でSMTPHandlerを使う例
djangoのデフォルトのLOGGING設定では、エラー時のメール送信用ハンドラとして、AdminEmailHandlerを使った"mail_admins"が用意されてます。
ただAdminEmailHandlerだと、subjectが自由に設定できない?っぽかったので、SMTPHandlerを使ったハンドラを試してみました。
一応パラメータを細かく設定できます。
LOGGING = { 'version': 1, 'handlers': { 'mail_admins': { 'level': 'ERROR', 'class': 'django.utils.log.AdminEmailHandler' }, 'email': { 'class':'logging.handlers.SMTPHandler', 'mailhost': ('localhost', 25), 'fromaddr': 'foo@example.com', 'toaddrs': ['bar@example.com'], 'subject': '件名', 'credentials': ('*****', '*****'), }, }, 'loggers': { 'email_logger': { 'handlers':['email'], } } }
ちなみに開発中のSMTPでのメール送信テストはローカルにデバッグ用のSMTPサーバーを立てられると簡単にできます。
こちらのエントリが参考になりました。
デバッグ用SMTPサーバ
http://d.hatena.ne.jp/nullpobug/20100704/1278241186