JavaWeb QQ邮箱找回密码
生活随笔
收集整理的這篇文章主要介紹了
JavaWeb QQ邮箱找回密码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我的上一篇博客,已經寫了登錄注冊,接下來寫QQ郵箱找回密碼
首先:我們需要在 QQ郵箱設置中獲取授權碼,步驟如下
進入QQ郵箱---->設置---->賬戶---->開啟服務:POP3/SMTP服務---->保存授權碼
**其次:**我百度云盤里保存了可以提取,也可以百度下載
鏈接:https://pan.baidu.com/s/1IT_1sDNvALVh-H_78nMXaA
提取碼:btnb
導入項目中 或者
**最后:**代碼展示
1.SendEmial.jsp(前端頁面)
<form name="f1" id="f1" action="sedEmail" method="post"><table border="0"><tr><td colspan="1"><center><h3>郵箱找回密碼</h3></center></td></tr><tr><td><input type="text" name="email" id="email" placeholder="請輸入您的郵箱號"> </td><td colspan="1"><center><font color="red" size="2"> ${MSG}</font></center></td></tr><tr><td><input type="submit" value="確認"></td><td colspan="1"><center><font color="red" size="2"> ${MSG3}</font></center></td></tr></table></form><a href="login.jsp" style="margin-left: 70px;"><font size="2"><i>返回登錄</i></font> </a>2.CheckSendEmail.java(servlet進行數據處理,發送郵件)
package com.aiit.service;import java.io.IOException; import java.io.PrintWriter; import java.util.Properties;import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; 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.aiit.dao.SendEmail; import com.aiit.model.Login; @WebServlet("/sedEmail") public class CheckSendEmail extends HttpServlet {public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//接收頁面傳過來的QQ郵箱號String email = request.getParameter("email");//傳到數據庫,判斷是否存在,如果存在,返回用戶賬號信息SendEmail send = new SendEmail();Login login = send.getEmail(email);//System.out.println(login.getEmail());//to接收的是用戶注冊時的郵箱號,也就是就是收件人的,將接收到后臺發送的密碼String to = login.getEmail();// 發件人電子郵箱,你可以改成自己的郵箱號String from = "********@qq.com";// 指定發送郵件的主機為 smtp.qq.comString host = "smtp.qq.com"; //QQ 郵件服務器// 獲取系統屬性Properties properties = System.getProperties(); // 設置郵件服務器properties.setProperty("mail.smtp.host", host); properties.put("mail.smtp.auth", "true");// 獲取默認session對象Session session = Session.getDefaultInstance(properties,new Authenticator(){public PasswordAuthentication getPasswordAuthentication(){return new PasswordAuthentication("********@qq.com", "kwifhodgdpbldigd"); //發件人郵件用戶名、授權碼(授權碼要與QQ郵箱相對應,可以從郵箱設置里面獲得,詳細步驟在博客開頭)}}); try{// 創建默認的 MimeMessage 對象MimeMessage message = new MimeMessage(session); // Set From: 頭部頭字段message.setFrom(new InternetAddress(from)); // Set To: 頭部頭字段message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));// Set Subject: 頭部頭字段message.setSubject("This is the Subject Line!");// 設置消息體message.setText("您的員工管理系統,密碼是:"+login.getLoginPwd());// 發送消息Transport.send(message);//System.out.println("Sent message successfully....from runoob.com");//傳到頁面request.setAttribute("MSG3", "發送成功,請注意查收!");request.getRequestDispatcher("SendEmial.jsp").forward(request, response);}catch (MessagingException mex) {mex.printStackTrace();} } }3.SendEmail.java(數據庫)
package com.aiit.dao;import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;import com.aiit.common.JDBCUtils; import com.aiit.model.Login;public class SendEmail {public Login getEmail(String email){//先查找前端頁面傳過來的郵箱是否存在,若存在則把賬號、密碼、郵箱返回給servletLogin login = null;Connection conn = (Connection) JDBCUtils.getConnection();String sql="SELECT loginName,loginPwd,loginEmail FROM tbl_login WHERE loginEmail=?";try {PreparedStatement pre = (PreparedStatement) conn.prepareStatement(sql);pre.setString(1, email);ResultSet rs = pre.executeQuery();if(rs.next()){String loginName=rs.getString(1);String loginPwd=rs.getString(2);String loginEmail = rs.getString(3); login = new Login(loginName,loginPwd,loginEmail); return login;}else{return login;}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} return login;} }效果展示
上面我們只向郵箱里發功了一個消息,這種信息不美觀,下面我們修改成向郵箱發送一個頁面,其他操作都一樣我們只需要改一下發送信息的內容
package src.com.haihang.email;import java.text.SimpleDateFormat; import java.util.*; import javax.activation.*; import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage;public class SendEmail {public static void main(String [] args){ String to = "2053696385@qq.com";// 發件人電子郵箱String from = "2053696385@qq.com";// 指定發送郵件的主機為 smtp.qq.comString host = "smtp.qq.com"; //QQ 郵件服務器// 獲取系統屬性Properties properties = System.getProperties();// 設置郵件服務器properties.setProperty("mail.smtp.host", host);properties.put("mail.smtp.auth", "true");// 獲取默認session對象Session session = Session.getDefaultInstance(properties,new Authenticator(){public PasswordAuthentication getPasswordAuthentication(){return new PasswordAuthentication("2053696385@qq.com", "kwifhodgdpbldigd"); //發件人郵件用戶名、授權碼}});try{// 創建默認的 MimeMessage 對象MimeMessage message = new MimeMessage(session);// Set From: 頭部頭字段message.setFrom(new InternetAddress(from));// Set To: 頭部頭字段message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));// Set Subject: 頭部頭字段message.setSubject("This is the Subject Line!");// 設置消息體// message.setText("東哥最帥");String msgContent = "<!DOCTYPE html>"+"<html>"+"<head>"+"<meta charset='utf-8' />"+"<title>歡迎使用員工管理系統</title>"+"</head>"+"<body>"+"親愛的會員 ,您好,"+"<br/><br/> " +"您在" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ").format(new Date())+"提交找回密碼的請求。"+"<br/><br/>"+"以下是您的帳戶及密碼信息:"+"<br/><br/>"+ "用戶名:,密碼:"+"<br/> <br/>"+"感謝您使用本系統。"+"<br/>"+"此為自動發送郵件,請勿直接回復!"+"</body>"+"</html>"; message.setContent(msgContent, "text/html;charset=utf-8");// 設置郵件內容,為html格式 // 發送消息Transport.send(message);System.out.println("Sent message successfully....from runoob.com");}catch (MessagingException mex) {mex.printStackTrace();}} }效果展示
總結
以上是生活随笔為你收集整理的JavaWeb QQ邮箱找回密码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Boilsoft Video Split
- 下一篇: Android分区存储