Django / SendGrid - Сброс пароля - "Адрес from не соответствует проверенному идентификатору отправителя. "
Я начал интегрировать SendGrid в проект django.
Интеграция, похоже, работает, так как при регистрации пользователя ему отправляется приветственное письмо с email@domain-name.com
в качестве from_email
Однако если пользователь запрашивает новый пароль, это приводит к ошибке 500: "Адрес from не соответствует проверенному идентификатору отправителя."
Идентификация отправителя, очевидно, проверена, поскольку другие сигналы электронной почты работают.
Задав вопрос SendGrid, они сказали, что письмо заблокировано, потому что оно пришло от webmaster@localhost
. Что мне кажется немного странным.
Я запутался, где в Django может быть этот адрес электронной почты по умолчанию?
Вот мой текущий файл settings.py для электронной почты:
EMAIL_FROM = "email@domain-name.com"
EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
EMAIL_HOST = "smtp.sendgrid.net"
EMAIL_HOST_USER = "apikey
EMAIL_HOST_PASSWORD = config('SENDGRID_API_KEY', default='')
EMAIL_PORT = 587
EMAIL_USE_TLS = True
У меня нет конкретного представления, настроенного для изменения пароля, кроме следующего:
class PasswordsChangeView(PasswordChangeView):
form_class = PasswordChangingForm
success_url = reverse_lazy('home')
и, на всякий случай, вот пример файла signals.py, который запускает приветственное письмо:
@receiver(post_save, sender=UserProfile)
def created_user_profile(sender, instance, created, **kwargs):
if created:
subject = "title"
message = render_to_string("main/email/welcome_email.html",{
'username':instance.user,
'email': instance.user.email,
})
from_email = settings.EMAIL_FROM
print(f'from_email - {from_email} ')
to_email = [instance.user.email]
print(f'to_email - {to_email} ')
email = EmailMessage(subject, message, from_email, to_email)
print(f'email - {email} ')
email.content_subtype = "html"
email.send()
Добавьте DEFAULT_FROM_EMAIL внутрь вашего settings.py
. Это исправит проблему.
DEFAULT_FROM_EMAIL = "email@domain-name.com"
Также убедитесь, что from_email
правильно настроен в системе sendgrid и используйте тот же email, который настроен там.