Django не отправляет email администраторам при ошибке 500 (но настройки email работают с send_mail!)

Я знаю, что есть много похожих вопросов об этом, но ни один из них не помог. Когда я устанавливаю EMAIL_BACKEND в django.core.mail.backends.console.EmailBackend, я действительно вижу электронное письмо, когда срабатывает 500. Когда я устанавливаю EMAIL_BACKEND в django.core.mail.backends.smtp.EmailBackend, я не получаю письмо... но письмо, отправленное вручную с помощью функции send_mail, доставляется просто отлично, так что настройки электронной почты действительно работают. Я просто не понимаю этого.

DEBUG = False

EMAIL_BACKEND = env("EMAIL_BACKEND")
EMAIL_HOST = "smtp.sendgrid.net"
EMAIL_HOST_USER = "apikey"
EMAIL_HOST_PASSWORD = env("SENDGRID_API_KEY")
EMAIL_PORT = 587
EMAIL_USE_TLS = True

SERVER_EMAIL = "{my email}"

ADMINS = [
    ("Kevin Renskers", "{my email}"),
]

MANAGERS = ADMINS

У меня нет никаких пользовательских настроек LOGGING, и, как я уже сказал django.core.mail.backends.console.EmailBackend, я вижу письмо в консоли.

Итак, как может быть так, что я могу отправить электронную почту, используя send_mail, но ошибки не отправляются мне, используя точно такие же настройки электронной почты? Я просмотрел активность моего аккаунта sendgrid, и да, они вообще не отправляются.

Спасибо @michjnich за предложение попробовать вызвать mail-admins вручную. Когда я это сделал, я получил явную ошибку:

The from address does not match a verified Sender Identity. Mail cannot be sent until this error is resolved.

Оказывается, мне нужно было изменить SERVER_EMAIL на другой адрес электронной почты, настроенный в Sendgrid. Причина, по которой мой ручной вызов send_mail работал нормально, заключается в том, что я указал правильный адрес from.

Вернуться на верх