Итак, у меня есть приложение Django, которое отправляет электронные письма с подтверждением пользователям, которые хотят зарегистрировать свою учетную запись. Это выглядит примерно так
views.py
def send_activation_email(user, request):
current_site = get_current_site(request)
email_subject = "Activation Email"
context = {"user": user,
"domain": current_site,
'uid': urlsafe_base64_encode(force_bytes(user.pk)),
'token': generate_token.make_token(user)
}
email_body = render_to_string('email/activate.html',context)
email = EmailMessage(subject=email_subject, body=email_body, from_email=settings.EMAIL_FROM_USER, to=[user.email])
email.send()
и с settings.py
выглядит вот так
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'mail.privateemail.com'
EMAIL_FROM_USER = '[email protected]'
EMAIL_HOST_PASSWORD = '[redacted]'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_USE_SSL = False
Проблема в том, что когда я пытаюсь отправить электронное письмо, когда пользователь создает учетную запись, я получаю эту ошибку
SMTPRecipientsRefused at /register/
{'[email protected]': (554, b'5.7.1 <[email protected]>: Relay access denied')}
Что я знаю точно:
settings.py
не подключается
к views.py
Насколько я знаю и разговаривал со службой поддержки namecheap, проблема, скорее всего, вызвана заголовком электронного письма, но, насколько мне известно, я не могу найти в этом ничего плохого.
Если кто-то может мне помочь, я был бы очень признателен. У меня были проблемы с отправкой электронных писем в течение примерно 9 дней.
🤔 А знаете ли вы, что...
Python обладает обширной документацией и активным сообществом разработчиков.
Я думаю, вам нужно добавить значение для EMAIL_HOST_USER
в свой settings.py
. Без него Django не будет пытаться аутентифицироваться. Вот соответствующий фрагмент из документов:
EMAIL_HOST_USER
По умолчанию: '' (пустая строка)Имя пользователя, которое будет использоваться для SMTP-сервера, определенного в
EMAIL_HOST
. Если пусто, Django не будет пытаться аутентифицироваться.
Имя пользователя должно совпадать с паролем, который вы уже предоставили (т. е. действующей частной учетной записи электронной почты namecheap).