我在我的Django应用程序中使用自定义电子邮件后端(在本例中为CeleryEmailBackend):
EMAIL_BACKEND = 'djcelery_email.backends.CeleryEmailBackend'
我的日志配置:
LOGGING = {
# ...
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler',
},
# ...
}
管理员错误电子邮件也会由同一封电子邮件后端发送 因此,如果电子邮件后端出现问题(例如Celery未运行)。然后我将不会收到服务器错误电子邮件。
有没有办法让AdminEmailHandler
使用自定义电子邮件后端?
答案 0 :(得分:6)
这是可能的,但在django 1.6中,请引用documentation:
通过设置AdminEmailHandler的email_backend参数,电子邮件 可以覆盖处理程序正在使用的后端,例如 这样:
'handlers': {
'mail_admins': {
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler',
'email_backend': 'django.core.mail.backends.filebased.EmailBackend',
}
},
如果您不想升级(例如,因为1.6不稳定),请考虑根据AdminEmailHandler制作自定义电子邮件处理程序。应该不难,因为这个new feature的实际实现非常简单明了(参见pull-request)。
或者,您实际上可以从django 1.6中提取整个AdminEmailHandler
类,并将其用作自定义电子邮件处理程序。