日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

idea实现注册登录时使用QQ邮箱激活功能

發布時間:2023/12/8 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 idea实现注册登录时使用QQ邮箱激活功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先建立數據庫,我的數據庫為:

CREATE TABLE user (uid varchar(11) primary key , -- 賬號type int default 1, -- 類型, 1注冊會員, 2廣告方, 3管理員name varchar(50) , -- 昵稱email varchar(50), -- 郵箱password varchar(50), -- 密碼active char(1) default '0', -- 激活狀態coin int default 1000 -- 金幣 );

其次在utils中創建MySendMailThread.java文件,代碼內容為:

package utils; import java.security.GeneralSecurityException; import java.util.Properties; import javax.mail.Authenticator; import javax.mail.Message.RecipientType; import javax.mail.MessagingException; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import com.sun.mail.util.MailSSLSocketFactory; import javaBean.User;public class MySendMailThread extends Thread {private User user = null;public MySendMailThread(User user) {this.user = user;}@Overridepublic void run() {// 跟smtp服務器建立一個連接Properties p = new Properties();// 設置郵件服務器主機名p.setProperty("mail.host", "smtp.qq.com");// 指定郵件服務器,默認端口 25// 發送服務器需要身份驗證p.setProperty("mail.smtp.auth", "true");// 要采用指定用戶名密碼的方式去認證// 發送郵件協議名稱p.setProperty("mail.transport.protocol", "smtp");// 開啟SSL加密,否則會失敗MailSSLSocketFactory sf = null;try {sf = new MailSSLSocketFactory();} catch (GeneralSecurityException e1) {e1.printStackTrace();}sf.setTrustAllHosts(true);p.put("mail.smtp.ssl.enable", "true");p.put("mail.smtp.ssl.socketFactory", sf);// 開啟debug調試,以便在控制臺查看// session.setDebug(true);也可以這樣設置// p.setProperty("mail.debug", "true");// 創建sessionSession session = Session.getDefaultInstance(p, new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {// 用戶名可以用QQ賬號也可以用郵箱的別名PasswordAuthentication pa = new PasswordAuthentication("*********@qq.com", "**********");// new PasswordAuthentication中第一個為發郵件的自己的QQ號,第二個為授權碼(需要到QQ郵箱中獲取)return pa;}});session.setDebug(true);// 設置打開調試狀態try {// 聲明一個Message對象(代表一封郵件),從session中創建MimeMessage msg = new MimeMessage(session);// 郵件信息封裝// 1發件人msg.setFrom(new InternetAddress("867679310@qq.com"));// 2收件人msg.setRecipient(RecipientType.TO, new InternetAddress(user.getEmail()));// 3郵件內容:主題、內容msg.setSubject(user.getName() + ",歡迎注冊綜合類信息網站賬號,請點擊鏈接激活賬號");// StringBuilder是線程不安全的,但是速度快,這里因為只會有這個線程來訪問,所以可以用這個StringBuilder sbd = new StringBuilder();sbd.append(user.getName() + "<br/>歡迎!請確認此郵件地址以激活您的賬號。<br/>");sbd.append("<font color='red'><a href='http://127.0.0.1:8080/ActiveServlet?uid="+ user.getUid() + "' target='_blank'");sbd.append(">立即激活</a></font><br/>");sbd.append("或者點擊下面鏈接:<br/>");sbd.append("http://127.0.0.1:8080/ActiveServlet?uid=" + user.getUid() + "<br/>");sbd.append("這是一封自動發送的郵件;如果您并未要求但收到這封信件,您不需要進行任何操作。");msg.setContent(sbd.toString(), "text/html;charset=utf-8");// 發html格式的文本// 發送動作Transport.send(msg);System.out.println("給" + user.getEmail() + "發送郵件成功。");} catch (AddressException e) {e.printStackTrace();} catch (MessagingException e) {e.printStackTrace();}} }

在UserServices的注冊方法中調用util工具類中的MySendMailThread.java中的方法,代碼如下:

public boolean regist( User user ){new MySendMailThread( user ).run();return userDao.insert( user ); }

最后在登錄中的UserLoginServlet.java文件中添加如下判斷,通過查詢數據庫中的Active字段是否置1來判斷用戶是否登錄郵箱進行郵箱激活,代碼為:

if(user.getActive().equals("0")){String loginMsg="未使用郵箱激活賬號,請打開您的郵箱激活!";request.setAttribute("loginMsg",loginMsg);request.getRequestDispatcher("/login.jsp").forward(request,response); }

?

?

總結

以上是生活随笔為你收集整理的idea实现注册登录时使用QQ邮箱激活功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。