仅向选定的管理员发送错误触发的电子邮件

时间:2014-12-11 19:34:49

标签: django django-errors

当服务器上发生500错误时,django会自动向所有管理员发送电子邮件。这是一个很棒的功能,但是如果有些管理员想要选择退出呢?管理员是否可以选择他们是否希望django在发生错误时通过电子邮件发送给他们?无论如何,服务器正在记录所有错误,并且当他们登录到站点时,数据可供所有管理员修改。

1 个答案:

答案 0 :(得分:1)

在Django 1.8中,可以覆盖发生错误时收到电子邮件的人。它也可能在早期的Django版本中,但代码将更加丑陋。

Django使用Python的日志记录框架发送错误电子邮件,这可以自定义(see documentation)。特别是处理程序具有以下方法:

  

send_mail(subject, message, *args, **kwargs):向管理员用户发送电子邮件。要自定义此行为,您可以继承AdminEmailHandler类并覆盖此方法。

这会调用django.core.mail.mail_admins,默认情况下会向settings.ADMINS中的所有条目发送电子邮件。您需要使用django.core.mail.send_mail来自定义您要发送电子邮件的人(即,请settings.ADMINS,应用过滤并根据需要自行调用send_maiL收件人列表。