2014-12-11 2 views
1

서버에서 500 오류가 발생하면 django는 자동으로 모든 관리자에게 전자 메일을 보냅니다. 이는 훌륭한 기능이지만 일부 관리자가 옵트 아웃을 원할 경우 어떻게해야합니까? 관리자가 오류가 발생할 때 django가 이메일을 보내도록할지 여부를 선택할 수 있습니까? 서버는 어쨌든 모든 오류를 로깅하고 모든 관리자가 사이트에 로그인 할 때 데이터를 수정할 수 있습니다.오류가 선택된 관리자에게 전자 메일을 보내려면

답변

1

Django 1.8에는 오류가 발생했을 때 이메일 수신자를 무시할 수있는 기능이 있습니다. 이전 Django 버전에서도 가능하지만 코드가 더 못 생깁니다.

장고는 오류 전자 메일을 Python의 로깅 프레임 워크를 사용하여 전송하며 사용자 정의 할 수 있습니다 (see documentation). 특히 핸들러에는 다음과 같은 메소드가 있습니다.

send_mail(subject, message, *args, **kwargs): 관리자에게 전자 메일을 보냅니다. 이 동작을 사용자 지정하려면 AdminEmailHandler 클래스의 하위 클래스를 만들고이 메서드를 재정의 할 수 있습니다.

은 기본적으로 settings.ADMINS의 모든 항목에 전자 메일을 보냅니다. 대신 django.core.mail.send_mail을 사용하여 이메일을 보낼 사람을 맞춤 설정해야합니다 (즉, settings.ADMINS으로 걸러 필터링을 적용하고 을 원하는 수신자 목록으로 직접 전화하십시오).

관련 문제