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.