用户绑定QQ邮箱找回密码

发布时间:2024-12-20 点击:95
其找回密码的流程如下:
第一步:输入用户名,系统查找是否存在该用户,如果存在则进行下一步,并给出用户的邮箱;否则提示"不存在该用户"
第二步:存在该用户后,则进行用户的邮箱验证,每个用户绑定一个qq邮箱,点击"发送验证码"按钮,系统会给该邮箱发送一条包含验证码的邮件,发送成功,系统会在前端显示"验证码已经发送到你的邮箱,请查看"。用户填入该验证码,并且两者相匹配,则可以进行下一步,否则无法进行下一步,会提示"输入的邮箱验证码错误"
第三步:查看邮箱收到的邮件,复制验证码,填入系统第二步框中,进行第三步验证。通过前两步的验证,已经可以验证,操作者就是本人,所以第三步,用户可以直接修改密码,覆盖原密码
第四步:成功找回密码,是一个新的密码,用户可以返回登录页面进行登录
部分源码:
mailutil.java(发送邮件工具类)
package com.utils; import java.util.properties; import javax.mail.message; import javax.mail.messagingexception; import javax.mail.session; import javax.mail.transport; import javax.mail.internet.addressexception; import javax.mail.internet.internetaddress; import javax.mail.internet.mimemessage; import javax.mail.internet.mimemessage.recipienttype; /* * 管理员发送邮件的配置类 * 作者:海哥 * 时间:2017年8月20日 */ public class mailutil { public void sendmessage(string receiver, string title, string content) throws addressexception,messagingexception{ properties properties = new properties(); 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 会在控制台显示相关信息 //得到回话对象 session session = session.getinstance(properties); // 获取邮件对象 message message = new mimemessage(session); //设置发件人邮箱地址 message.setfrom(new internetaddress("linhaiyun4571@qq.com")); //设置收件人地址 message.setrecipients(recipienttype.to,new internetaddress[] { new internetaddress(receiver) }); //设置邮件标题 message.setsubject(title); //设置邮件内容 message.settext(content); //得到邮差对象 transport transport = session.gettransport(); //连接自己的邮箱账户 transport.connect("linhaiyun4571@qq.com", "输入你自己的授权码");//密码为刚才得到的授权码 //发送邮件 transport.sendmessage(message, message.getallrecipients()); system.out.println("邮件正在发送!"); } }
sendmessage.java(触发发送邮件的控制类)
package com.servlet; import java.io.ioexception; import javax.mail.messagingexception; import javax.mail.internet.addressexception; import javax.servlet.servletexception; import javax.servlet.annotation.webservlet; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import com.bean.user; import com.utils.mailutil; @webservlet("/sendmessage") public class sendmessage extends httpservlet { private static final long serialversionuid = 1l; public sendmessage() { super(); // todo auto-generated constructor stub } protected void doget(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception { // todo auto-generated method stub dopost(request, response); } protected void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception { // todo auto-generated method stub //设置编码 request.setcharacterencoding("utf-8"); response.setcharacterencoding("utf-8"); response.setheader("content-type","text/html; charset=utf-8"); try { mailutil mail = new mailutil(); int num = (int)((math.random()*9 1)*100000); //生成六位验证码随机数 request.getsession().setattribute("num", num); //设置东西保存验证码 user

江苏便宜好用的云服务器
退回已经修改好-备案平台
网站建设怎样分步操作
云文档存储对远程工作的五个好处
购买企业邮箱一般多少钱
19云服务器提供哪些优惠
阿里云 海外服务器 价格
主机绑定域名问题-虚拟主机/数据库问题