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