Почему письмо все еще не отправляется, хотя все шаги были выполнены?
Я пытаюсь отправить письмо с подтверждением каждый раз, когда пользователь регистрируется на моем сервисе. Я следовал руководствам, но пока пользователь регистрируется, письмо не отправляется.
Это мой views.py
def signup_view(request):
if request.method == "POST":
first_name= request.POST.get('first_name')
last_name = request.POST.get('last_name')
email = request.POST.get('email', 'default user')
phone = request.POST.get('phone')
password1= request.POST.get('password1')
password2= request.POST.get('password2')
userHash= email.replace('@','')
# userHash =~ s/'@'//g
#new =User.objects.filter(username = userHash)
if password1 != password2:
return render(request, 'signup.html',{'error_message': ' Passwords Different'})
else:
user = User.objects.create_user((userHash, password1))
user.save()
login(request, user)
current_site = get_current_site(request)
user = request.user
email = request.user.email
subject = "Verify Email"
message = render_to_string('account/verify_email_message.html', {
'user': user,
'domain': current_site.domain,
'uid':urlsafe_base64_encode(force_bytes(user.pk)),
'token':account_activation_token.make_token(user),
})
email = EmailMessage(
subject, message, to=[email]
)
email.send()
return HttpResponse("Please Confirm your email address to complete the registration") and render(request,'account/landing.html')
else:
form = CreateUserForm()
context = {
'form': form
}
return render(request, 'account/signup.html', context)
def activate(request, uidb64, token):
try:
uid = force_str(urlsafe_base64_decode(uidb64))
user = User.objects.get(pk=uid)
except(TypeError, ValueError, OverflowError, User.DoesNotExist):
user = None
if user is not None and account_activation_token.check_token(user, token):
user.is_active = True
user.save()
return HttpResponse("Thank you for this confirmation") and redirect('account/index.html')
else:
messages.warning(request, 'The link is invalid.')
return render(request, 'account/index.html')
def home(request):
return render(request, 'account/index.html')
Это мой файл settings.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = "smtp.gmail.com"
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = "myjarwiz2024@gmail.com" # - GMAIL email address
EMAIL_HOST_PASSWORD = 'redacted' # - APP password
DEFAULT_FROM_EMAIL = 'Jarwiz myjarwiz2024@gmail.com' # - GMAIL email address
Пока происходят все переадресации, письмо не отправляется.
Я пытался сделать это, используя другие учебники, менял виды и следовал инструкциям из stack overflow для решения ошибок, но у меня ничего не получается.
Я узнал, что я сделал не так.
user = request.user
email = request.user.email
Я удалил две вышеуказанные строки, и письмо было отправлено.