Django не отправляет электронные письма администраторам - PullRequest
61 голосов
/ 12 сентября 2009

Согласно документации , если DEBUG установлено на False и что-то предусмотрено в настройке ADMINS, Django будет отправлять электронное письмо всякий раз, когда код вызывает код состояния 500. У меня правильно настроены параметры электронной почты (так как я могу нормально использовать send_mail), но всякий раз, когда я намеренно добавляю ошибочный код, я получаю свой шаблон 500.html, но сообщение об ошибке не отправляется. Что может заставить Джанго этого не делать?

Ответы [ 19 ]

1 голос
/ 10 августа 2018

Если вы используете или хотите использовать SendGrid, используйте приведенные ниже настройки при работе.

Установить пакет

pip install sendgrid-django

Добавьте эти настройки в settings.py (производство)

DEBUG = False

EMAIL_BACKEND = "sendgrid_backend.SendgridBackend"

SENDGRID_API_KEY = "That you generate in sendgrid account"

ADMINS = (
    ("Your Name", "your_email@company.com")
)
1 голос
/ 02 октября 2017

И еще одна вещь, которая может пойти не так (я просто добавлю ее в список, для тех людей, которые здесь оказываются, несмотря на все замечательные ответы выше):

Наша установка django использовала SendGrid в качестве хоста smtp, и в настройках django был указан один адрес электронной почты администратора. Некоторое время это работало нормально, но в какой-то момент письма перестали поступать.

Как выяснилось, почтовый адрес попал в список «Отказов» SendGrid по неизвестной причине, из-за чего электронные письма на этот адрес молча отбрасывались навсегда. Удаление адреса из этого списка и внесение его в белый список исправило проблему.

1 голос
/ 22 апреля 2015

... а затем возникает ошибка facepalm, когда вы используете ее в разработке, чтобы предотвратить отправку электронных писем, а затем случайно скопируете настройку в производство:

# Print emails to console
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

(конечно, вы не видите, как они выводятся на консоль при использовании сервера wsgi). Снятие настройки с производства исправило это для меня.

1 голос
/ 23 апреля 2013

Если по какой-либо причине вы установите для параметра DEBUG_PROPAGATE_EXCEPTIONS значение True (по умолчанию это значение False), электронная почта для администратора не будет работать.

1 голос
/ 09 декабря 2011

Хотя это было давно, вот мой ответ, чтобы другие люди могли получить выгоду в будущем.

В моем случае то, что препятствовало отправке электронных писем в список ADMINS, когда произошла ошибка, было настройкой приложения. Я использовал django-поршень, который предоставляет атрибуты настройки PISTON_EMAIL_ERRORS и PISTON_DISPLAY_ERRORS. Установите их соответствующим образом, чтобы сервер приложений мог уведомлять меня по почте при каждом сбое поршня.

0 голосов
/ 10 августа 2018

Информация ниже представлена ​​в https://docs.djangoproject.com/en/2.1/howto/error-reporting/#email-reports

EMAIL_HOST = "email host"

EMAIL_HOST_USER = "Email username"

EMAIL_HOST_PASSWORD = "Email Password"

DEBUG = False

ADMINS = (
    ("Your Name", "your_email@company.com")
)

Для отправки электронной почты Django требуется несколько настроек, рассказывающих, как подключиться к вашему почтовому серверу. По крайней мере, вам нужно укажите EMAIL_HOST и, возможно, EMAIL_HOST_USER и EMAIL_HOST_PASSWORD, хотя могут потребоваться и другие настройки в зависимости от конфигурации вашего почтового сервера. Посоветуйтесь с Джанго документация настроек для получения полного списка настроек, связанных с электронной почтой.

0 голосов
/ 08 апреля 2015

В моем случае это include_html в mail_admins.

Когда я установил include_html на True, сервер электронной почты отказывается отправлять мою электронную почту, поскольку считает, что мои письма являются спамом.

Все отлично работает, когда я устанавливаю include_html на False.

0 голосов
/ 17 августа 2014

Из-за чего у меня возникла эта проблема, и ни одно из этих предложений не сработало для меня. Оказывается, моя проблема заключалась в том, что SERVER_EMAIL был установлен на адрес, который сервер (Webfaction) не распознал. Если бы этот сайт размещался в Webfaction (как и мои другие сайты), это не было бы проблемой, но, поскольку это было на другом сервере, серверы Webfaction не только проверяют аутентификацию электронной почты отправлено, но также и значение From:.

0 голосов
/ 12 сентября 2009

Хотя, вероятно, не идеально, я обнаружил использование Gmail, так как SMTP-хост работает просто отлично. На nathanostgard.com есть полезное руководство.

Не стесняйтесь публиковать свои соответствующие разделы settings.py (включая EMAIL_ *, SERVER_EMAIL, ADMINS (просто заберите свой реальный адрес электронной почты), MANAGERS и DEBUG), если вам нужен дополнительный набор глаз для проверки на опечатки!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...