首页 > 解决方案 > 注册用户时发送电子邮件出错

问题描述

我正在尝试在用户注册时发送电子邮件,但它只是重定向到预期的页面,但没有发送电子邮件。

这是我的代码

def register_view(request):  # Creates a New Account & login New users
    if request.user.is_authenticated:
        return redirect("/")

    else:
        title = "Register"
        form = UserRegistrationForm(request.POST or None)
        print(form.is_valid())
        if form.is_valid():
            user = form.save(commit=False)
            password = form.cleaned_data.get("password1")
            user.set_password(password)
            user.save()
            # new_user = authenticate(email=user.email, password=password)
            login(request, user)
            return redirect("/books")

            subject = "Greetings"
            msg = "Congratulations Yor Account is created Successfully. Do not share your login credentials with anyone else"
            to = "Ak4695755@gmail.com"
            res = send_mail(subject, msg, settings.EMAIL_HOST_USER, [to])

        context = {"title": title, "form": form}
        return render(request, "accounts/signup.html", context)

标签: pythondjangoemail

解决方案


由于您在发送消息之前返回重定向,因此if form.is_valid()执行其余语句:

if form.is_valid():
        user = form.save(commit=False)
        password = form.cleaned_data.get("password1")
        user.set_password(password)
        user.save()
        # new_user = authenticate(email=user.email, password=password)
        login(request, user)

        subject = "Greetings"
        msg = "Congratulations Yor Account is created Successfully. Do not share your login credentials with anyone else"
        to = "Ak4695755@gmail.com"
        res = send_mail(subject, msg, settings.EMAIL_HOST_USER, [to])

        return redirect("/books")
   ...

推荐阅读