配置 Django 以将错误电子邮件发送到特殊电子邮件帐户的最简单方法是什么?
错误电子邮件上的文档没有明确提到任何方法来做到这一点。我知道如何编写可以查找和使用不同凭据的自定义电子邮件后端,但由于 EmailBackend._send 方法只接收消息,我不确定如何检测消息何时响应 500 服务器错误。
您使用日志记录设置将 500 错误发送到管理员电子邮件 ID。
日志设置示例:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'mail_admins': {
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler',
}
},
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
}
}
}
这会将 django 中的所有 500 个错误发送到提到的电子邮件 ID。
请参阅: Django 中 Python 日志记录的优雅设置
和 :
https://docs.djangoproject.com/en/dev/topics/logging/#an-example
如果您想使用另一个 SMTP 服务器,请使用异常中间件。
http://docs.djangoproject.com/en/dev/topics/http/middleware/#process-exception
在该process_exception
方法中,您可以将异常的追溯通过电子邮件发送到所需的电子邮件帐户。
https://stackoverflow.com/a/19001979/483642这比下面的答案容易得多。您只需要继承django.core.mail.backends.smtp.EmailBackend
并设置email_backend
您的日志记录配置。