Я пытаюсь отправить письмо пользователю для активации его учетной записи при регистрации. Я использовал функцию send_mail в Django и Google stmp.
Вот мой settings.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'sm******e@gmail.com'
EMAIL_HOST_PASSWORD = '*******'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
Я включил доступ для менее защищенных приложений и разблокировалcaptcha. Я прочитал много вещей, которые, похоже, не работают. Я также попытался изменить порядок расположения приведенного выше фрагмента кода. Ничего не работает. Я получаю эту ошибку и другие варианты
(534, b'5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbv\n5.7.14 lY_yuZp3YjByqaX8J_3Ixrd9McIpBdalv5CzBicW4GI6_NxwD5J78C5qu4p1i1d4_CZak\n5.7.14 I7sN3nAcOy4bQa2gJw_8migeiV5qTHdLVtRIYGLr4OTQuHijuaraS4gOwlv8EqhG>\n5.7.14 Please log in via your web browser and then try again.\n5.7.14 Learn more at\n5.7.14 https://support.google.com/mail/answer/78754 qo21sm499096ejb.105 - gsmtp')
Ссылка в сообщении об ошибке больше не доступна. Кто-нибудь должен помочь, пожалуйста. Наконец, вот код моего views.py
def register(request):
if request.method == 'POST':
first_name = request.POST['first_name']
last_name = request.POST['last_name']
username = request.POST['username']
email = request.POST['email']
password = request.POST['password']
password2 = request.POST['password']
if password == password2:
if User.objects.filter(username=username).exists():
messages.error(request, 'username already exists')
return redirect('register')
else:
user = User.objects.create_user(first_name=first_name, last_name = last_name, username=username, email=email,
password=password)
user.save()
id=user.id
subject = 'Welcome to LifeStream'
message= '"Hi!\nHow are you?\nHere is the link to activate your account:\nhttp://127.0.0.1:8005/blog/activation/?id=%s" %(id)'
recipient = str(user.email)
send_mail(subject, message, EMAIL_HOST_USER, [recipient], fail_silently=False)
return render(request,'blog/thankyou.html')
#messages.success(request, 'Registration successful! You can now login!')
#return redirect('login')
else:
messages.error(request, 'passwords do not match')
return redirect('register')
else:
return render(request, 'blog/register.html')