Отправка сообщений об ошибках по электронной почте только выбранным администраторам
Когда на сервере происходит ошибка 500, django автоматически отправляет электронное письмо всем администраторам. Это отличная функция, но что если некоторые администраторы захотят отказаться? Могут ли администраторы выбрать, хотят ли они, чтобы django отправил им электронное письмо при возникновении ошибки? Сервер регистрирует все ошибки в любом случае, и данные доступны для просмотра всем администраторам при входе на сайт.
1 ответ
В Django 1.8 будет возможность переопределить, кто получает электронное письмо при возникновении ошибки. Это также возможно в более ранних версиях Django, но код будет более уродливым.
Django отправляет сообщения об ошибках с помощью среды ведения журналов Python, и это можно настроить ( см. Документацию). В частности, обработчик имеет следующий метод:
send_mail(subject, message, *args, **kwargs):
Отправляет письма администраторам. Чтобы настроить это поведение, вы можете создать подкласс класса AdminEmailHandler и переопределить этот метод.
Это звонки django.core.mail.mail_admins
который по умолчанию отправляет электронное письмо на все записи в settings.ADMINS
, Вам вместо этого нужно будет использовать django.core.mail.send_mail
чтобы настроить, кому вы хотите отправить по электронной почте (например, принять settings.ADMINS
, примените фильтрацию и позвоните send_maiL
самостоятельно со списком получателей по желанию).