settings.py
EMAIL_HOST = "smtp.126.com" EMAIL_POSRT = 25 EMAIL_HOST_USER = ""#郵箱名 EMAIL_HOST_PASSWORD = ""#密碼 EMAIL_USE_TLS = False EMAIL_FROM = ""#郵箱名
建立utils文件夾新建send_email.pyfrom random import Random
def generate_random_str(randomlength=8): str = \'\' chars = \'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789\' length = len(chars)-1 random = Random() for i in range(randomlength): str+=chars[random.randint(0,length)] return str
發(fā)送郵件from xxx.settings import EMAIL_FROM#導(dǎo)入smtp
from users.models import EmailVerifyRecord #導(dǎo)入模型
from django.core.mail import send_mail #導(dǎo)入發(fā)送郵件
def send_register_email(email,send_type="register"): email_record = EmailVerifyRecord()#實(shí)例化 random_str = generate_random_str(16)#取隨機(jī)數(shù) email_record.code = random_str email_record.email = email email_record.send_type = send_type email_record.save() if send_type == "register": email_title = "注冊(cè)激活鏈接" email_body = "請(qǐng)點(diǎn)擊下面的鏈接激活你的賬號(hào):http://127.0.0.1:8000/active/{0}".format(random_str) send_status = send_mail(email_title,email_body,EMAIL_FROM,[email]) if send_status: pass
app.views.py
from utils.email_send import send_register_email
from .forms import LoginForm
class RegisterView(View): def get(self,request):#訪問(wèn) return render(request,"register.html") def post(self,request):#登陸 register_form = RegisterForm(request.POST) if register_form.is_valid():#表單驗(yàn)證 email = request.POST.get("email", "")
if UserProfile.objects.filter(email = email): return render(request, "register.html",{"register_form":register_form,"msg": "用戶已經(jīng)存在"}) pass_word = request.POST.get("password", "") user_profile = UserProfile()#實(shí)例化用戶數(shù)據(jù)庫(kù) user_profile.username = email user_profile.email = email user_profile.is_active = False#郵箱驗(yàn)證狀態(tài) user_profile.password = make_password(pass_word)#密碼生成 user_profile.save()#保存數(shù)據(jù) send_register_email(email,"register")#發(fā)送郵件 return render(request,"login.html") else: return render(request, "register.html",{"register_form":register_form})
激活用戶郵箱:.
app.views.py登陸視圖
class LoginView(View): def get(self,request): return render(request, "login.html", {}) def post(self,request): login_form = LoginForm(request.POST) if login_form.is_valid():#驗(yàn)證表單填寫信息是否有效 user_name = request.POST.get("username", "") pass_word = request.POST.get("password", "") user = authenticate(username=user_name, password=pass_word) if user is not None:#判斷是否匹配 if user.is_active:#判斷用戶是否已激活 login(request, user)#登陸 return render(request, "index.html") else: return render(request, "login.html", {"msg": "郵箱未激活"})#未激活提示 else: return render(request, "login.html", {"msg": "用戶名或密碼錯(cuò)誤"})#錯(cuò)誤提示 else: return render(request,"login.html",{"login_form":login_form})#表單提示
app.views.py激活#激活用戶郵箱 class ActiveUserView(View): def get(self, request,active_code): all_records = EmailVerifyRecord.objects.filter(code=active_code) if all_records: for record in all_records: email = record.email user = UserProfile.objects.get(email=email) user.is_active = True user.save() return HttpResponse("The param is : " + active_code)
網(wǎng)站欄目:Django注冊(cè)郵箱驗(yàn)證
分享鏈接:http://www.rwnh.cn/article36/cgsssg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、微信公眾號(hào)、品牌網(wǎng)站設(shè)計(jì)、App開(kāi)發(fā)、網(wǎng)站策劃、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)