用户绑定QQ邮箱找回密码

阅读:827 2019-03-20 14:09:44 来源:新网

其找回密码的流程如下:

第一步:输入用户名,系统查找是否存在该用户,如果存在则进行下一步,并给出用户的邮箱;否则提示"不存在该用户"

第二步:存在该用户后,则进行用户的邮箱验证,每个用户绑定一个qq邮箱,点击"发送验证码"按钮,系统会给该邮箱发送一条包含验证码的邮件,发送成功,系统会在前端显示"验证码已经发送到你的邮箱,请查看"。用户填入该验证码,并且两者相匹配,则可以进行下一步,否则无法进行下一步,会提示"输入的邮箱验证码错误"

第三步:查看邮箱收到的邮件,复制验证码,填入系统第二步框中,进行第三步验证。通过前两步的验证,已经可以验证,操作者就是本人,所以第三步,用户可以直接修改密码,覆盖原密码

第四步:成功找回密码,是一个新的密码,用户可以返回登录页面进行登录

部分源码:

mailutil.java(发送邮件工具类)

packagecom.utils;importjava.util.properties;importjavax.mail.message;importjavax.mail.messagingexception;importjavax.mail.session;importjavax.mail.transport;importjavax.mail.internet.addressexception;importjavax.mail.internet.internetaddress;importjavax.mail.internet.mimemessage;importjavax.mail.internet.mimemessage.recipienttype;/**管理员发送邮件的配置类*作者:海哥*时间:2017年8月20日*/publicclassmailutil{publicvoidsendmessage(stringreceiver,stringtitle,stringcontent)throwsaddressexception,messagingexception{propertiesproperties=newproperties();properties.put("mail.transport.protocol","smtp");//连接协议properties.put("mail.smtp.host","smtp.qq.com");//主机名properties.put("mail.smtp.port",465);//端口号properties.put("mail.smtp.auth","true");properties.put("mail.smtp.ssl.enable","true");//设置是否使用ssl安全连接---一般都使用properties.put("mail.smtp.socketfactory.class","javax.net.ssl.sslsocketfactory");properties.put("mail.smtp.socketfactory.port","465");properties.put("mail.debug","true");//设置是否显示debug信息true会在控制台显示相关信息//得到回话对象sessionsession=session.getinstance(properties);//获取邮件对象messagemessage=newmimemessage(session);//设置发件人邮箱地址message.setfrom(newinternetaddress("linhaiyun4571@qq.com"));//设置收件人地址message.setrecipients(recipienttype.to,newinternetaddress[]{newinternetaddress(receiver)});//设置邮件标题message.setsubject(title);//设置邮件内容message.settext(content);//得到邮差对象transporttransport=session.gettransport();//连接自己的邮箱账户transport.connect("linhaiyun4571@qq.com","输入你自己的授权码");//密码为刚才得到的授权码//发送邮件transport.sendmessage(message,message.getallrecipients());system.out.println("邮件正在发送!");}}sendmessage.java(触发发送邮件的控制类)

packagecom.servlet;importjava.io.ioexception;importjavax.mail.messagingexception;importjavax.mail.internet.addressexception;importjavax.servlet.servletexception;importjavax.servlet.annotation.webservlet;importjavax.servlet.http.httpservlet;importjavax.servlet.http.httpservletrequest;importjavax.servlet.http.httpservletresponse;importcom.bean.user;importcom.utils.mailutil;@webservlet("/sendmessage")publicclasssendmessageextendshttpservlet{privatestaticfinallongserialversionuid=1l;publicsendmessage(){super();//todoauto-generatedconstructorstub}protectedvoiddoget(httpservletrequestrequest,httpservletresponseresponse)throwsservletexception,ioexception{//todoauto-generatedmethodstubdopost(request,response);}protectedvoiddopost(httpservletrequestrequest,httpservletresponseresponse)throwsservletexception,ioexception{//todoauto-generatedmethodstub//设置编码request.setcharacterencoding("utf-8");response.setcharacterencoding("utf-8");response.setheader("content-type","text/html;charset=utf-8");try{mailutilmail=newmailutil();intnum=(int)((math.random()*9+1)*100000);//生成六位验证码随机数request.getsession().setattribute("num",num);//设置东西保存验证码useruser=(user)request.getsession().getattribute("finduser");//得到修改密码对象的objectstringreceiver=user.getuser_mail();stringtitle="员工找回密码";stringcontent="这是高级验证系统发来的邮件,你正在执行该系统找回密码的操作,你的邮箱验证码为:"+string.valueof(num)+",请不要告诉别人哦!";mail.sendmessage(receiver,title,content);request.getsession().setattribute("success","验证码已经发送到你的邮箱,请查看!");//设置东西保存验证码}catch(addressexceptione){//todoauto-generatedcatchblocksystem.out.println("验证码发送失败");e.printstacktrace();}catch(messagingexceptione){//todoauto-generatedcatchblocke.printstacktrace();}request.getrequestdispatcher("secondsteps.jsp").forward(request,response);}}validation.java(邮箱验证码匹配验证)

packagecom.servlet;importjava.io.ioexception;importjavax.servlet.servletexception;importjavax.servlet.annotation.webservlet;importjavax.servlet.http.httpservlet;importjavax.servlet.http.httpservletrequest;importjavax.servlet.http.httpservletresponse;importcom.bean.user;@webservlet("/validation")publicclassvalidationextendshttpservlet{privatestaticfinallongserialversionuid=1l;publicvalidation(){super();//todoauto-generatedconstructorstub}protectedvoiddoget(httpservletrequestrequest,httpservletresponseresponse)throwsservletexception,ioexception{//todoauto-generatedmethodstubdopost(request,response);}protectedvoiddopost(httpservletrequestrequest,httpservletresponseresponse)throwsservletexception,ioexception{//todoauto-generatedmethodstub//设置编码request.setcharacterencoding("utf-8");response.setcharacterencoding("utf-8");response.setheader("content-type","text/html;charset=utf-8");stringemail=request.getparameter("email");stringfycodes=request.getparameter("fycodes");//邮箱验证码intcode=integer.parseint(fycodes);//字符串转换为整形intnum=(int)request.getsession().getattribute("num");//得到刚发送的邮箱验证码system.out.println("你的邮箱验证码为:"+num);if(code==num){//判断输入的验证码是否和邮箱收到的一致system.out.println("验证成功!");//request.getsession().removeattribute("num");request.getsession().removeattribute("success");request.getrequestdispatcher("thirdsteps.jsp").forward(request,response);}else{request.getsession().setattribute("validaerror","输入的邮箱验证码错误!");//设置东西保存验证码request.getrequestdispatcher("secondsteps.jsp").forward(request,response);}}}

相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>
推荐商标

{{ v.name }}

{{ v.cls }}类

立即购买 联系客服