在Django中使用单独的电子邮件帐户收发错误电子邮件

时间:2013-06-24 17:41:21

标签: python django

配置Django将错误电子邮件发送到特殊电子邮件帐户的最简单方法是什么?

错误电子邮件中的docs没有明确提及任何方法。我知道如何编写可以查找和使用不同凭据的自定义email backend,但由于EmailBackend._send方法只接收消息,我不知道如何检测消息何时响应500服务器错误。

2 个答案:

答案 0 :(得分:4)

您使用日志记录设置将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中。

请参阅: Elegant setup of Python logging in Django

和:

https://docs.djangoproject.com/en/dev/topics/logging/#an-example

如果要使用其他SMTP服务器,请使用异常中间件。

http://docs.djangoproject.com/en/dev/topics/http/middleware/#process-exception

process_exception方法中,您可以通过电子邮件将异常回溯电子邮件发送到必需的 电子邮件帐户。

答案 1 :(得分:0)

https://stackoverflow.com/a/19001979/483642这比下面的回答容易。您只需要继承django.core.mail.backends.smtp.EmailBackend并在日志配置中设置email_backend