嗨,我想为django电子邮件错误创建格式,在这种情况下django会自动发送电子邮件,以获取典型的错误格式:
我想在电子邮件报告中获得项目名称,所有类型错误(404/500 / etc)... 这是我的设置:
ADMINS = (
('Diego Avila', 'diego.loachamin@test.com'),
)
#CONFIGURAR PARAMETROS EMAIL
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_SSL = True
EMAIL_HOST = 'mail.test.com'
EMAIL_HOST_USER = 'diego.loachamin@test.com'
EMAIL_HOST_PASSWORD = 'dsdsad'
EMAIL_PORT = 465
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
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,
},
}
}
请有人提出建议或想法..谢谢.. !!
答案 0 :(得分:1)
Django内置了此类功能。对于500个错误,它是一个名为AdminEmailHandler
的日志记录处理程序。当有未捕获的异常时它将触发,并将回溯包括在电子邮件正文中。
404不同。这不是一个未捕获的异常,但是您可以使用BrokenLinkEmailsMiddleware
拦截那些异常并发送电子邮件。
要自定义这些电子邮件的外观,您可以创建自己的AdminEmailHandler
和BrokenLinkEmailsMiddleware
之一或两者的子类。在settings.py中更改相关的日志记录和中间件配置,以指向您的自定义日志记录处理程序/中间件。
对于日志记录处理程序,例如,您可以使用format_subject
方法将某些内容添加到外发电子邮件的主题行中。
class CustomAdminEmailHandler(AdminEmailHandler):
def format_subject(self, subject):
return '[ project name ]' + super().format_subject(subject)
中间件和日志记录处理程序都使用django.core.email.mail-admins()
发送电子邮件。