用户绑定QQ邮箱找回密码
来源:互联网 发布:matlab2016b软件激活 编辑:程序博客网 时间:2024/04/29 06:35
其找回密码的流程如下:
第一步:输入用户名,系统查找是否存在该用户,如果存在则进行下一步,并给出用户的邮箱;否则提示"不存在该用户"
第二步:存在该用户后,则进行用户的邮箱验证,每个用户绑定一个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 stubdoPost(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 user = (User) request.getSession().getAttribute("finduser"); //得到修改密码对象的Object String receiver = user.getUser_mail(); String title = "员工找回密码"; String content = "这是高级验证系统发来的邮件,你正在执行该系统找回密码的操作,你的邮箱验证码为:"+ String.valueOf(num) + ",请不要告诉别人哦!"; mail.SendMessage(receiver, title, content); request.getSession().setAttribute("success","验证码已经发送到你的邮箱,请查看!"); //设置东西保存验证码} catch (AddressException e) {// TODO Auto-generated catch blockSystem.out.println("验证码发送失败");e.printStackTrace();} catch (MessagingException e) {// TODO Auto-generated catch blocke.printStackTrace();} request.getRequestDispatcher("SecondSteps.jsp").forward(request, response);}}
Validation.java(邮箱验证码匹配验证)
package com.servlet;import java.io.IOException;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;@WebServlet("/Validation")public class Validation extends HttpServlet {private static final long serialVersionUID = 1L; public Validation() { super(); // TODO Auto-generated constructor stub }protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoPost(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"); String email = request.getParameter("email"); String fycodes = request.getParameter("fycodes"); //邮箱验证码 int code = Integer.parseInt(fycodes); //字符串转换为整形 int num = (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); } }}
阅读全文
0 0
- 用户绑定QQ邮箱找回密码
- 发送邮箱密码找回 比如qq邮箱
- JAVA实现通过绑定邮箱找回密码功能
- 邮箱找回密码
- 通过邮箱找回密码
- 通过邮箱找回密码
- .net邮箱找回密码
- java 邮箱找回密码
- 邮箱找回密码功能
- 通过邮箱找回密码
- Django网站建设-用户注册、登陆、邮箱激活、密码找回
- 找回QQ密码
- JAVA实现邮箱找回密码
- php通过邮箱找回密码
- Java实现邮箱找回密码
- 发送邮箱实现找回密码
- 使用邮箱找回密码 springmvc
- php邮箱找回密码功能
- gfs-react-dm笔记
- 王阳明
- 神奇的算法,你知道吗?
- HMM模型和Viterbi算法
- 使用echarts动态设置多重折线图
- 用户绑定QQ邮箱找回密码
- Drupal7 API Database abstraction layer
- 旋转三维图形
- 好看的网站布局2
- 树状数组入门(求和)
- Drupal7 API Menu system
- HashMap和ConcurrentHashMap流程图
- hdu6152 Friend-Graph (2017 ccpc 网络赛 (暴力 + 一个神奇的定理)
- css自动换行缩进