日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

javamail实现邮箱验证功能

發布時間:2024/7/23 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javamail实现邮箱验证功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

javamail是基于SMTP協議和POP3協議的郵件發送與接收系統,在用戶注冊與登陸的過程中,常需要用到郵箱驗證功能,下面是基于javamail的一個簡單實現

用戶注冊后通過servlet得到郵箱地址,并使用方法發送郵件

//校驗用戶名if(dao.findUserByName(user.getUsername())!=null){throw new RuntimeException("用戶名已經存在");}//調用DAO中的方法添加用戶user.setRole("user");user.setState(0);user.setActivecode(UUID.randomUUID().toString());dao.addUser(user);//發送激活郵件Properties prop = new Properties();prop.setProperty("mail.transport.protocol", "smtp");prop.setProperty("mail.smtp.host", "localhost");prop.setProperty("mail.smtp.auth", "true");prop.setProperty("mail.debug", "true");Session session=Session.getInstance(prop);Message msg=new MimeMessage(session);msg.setFrom(new InternetAddress("aa@zj.com"));msg.setRecipient(RecipientType.TO, new InternetAddress(user.getEmail()));msg.setSubject(user.getUsername()+",來自estore的激活郵件");msg.setText(user.getUsername()+"點擊如下鏈接激活用戶,如果不能點擊請復制到瀏覽器地址欄訪問:localhost/Estore/ActiveServlet?activecode="+user.getActivecode());Transport trans=session.getTransport();trans.connect("aa","123");trans.sendMessage(msg, msg.getAllRecipients());//conn.commit();}catch(Exception e){e.printStackTrace();throw new RuntimeException(e);}}

鏈接地址代碼

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {UserService service=BasicFactory.getFactory().getService(UserService.class); //激活用戶//獲取激活碼String activecode=request.getParameter("activecode");//調用Service中的方法激活User user=service.active(activecode);//激活成功后登陸用戶request.getSession().setAttribute("user", user);//激活成功后3秒回主頁response.getWriter().write("激活成功,3秒回主頁");response.setHeader("Refresh", "3;url=index.jsp");}

與數據庫中的激活碼進行驗證

public User active(String activecode) {// TODO 自動生成的方法存根User findU=new User();findU.setActivecode(activecode);User user=dao.findUserByActivecode(activecode);if(user==null){throw new RuntimeException("激活碼不存在,請檢查您的激活碼");}//如果用戶已經激活過,不能重復激活if(user.getState()!=0){throw new RuntimeException("用戶已經激活,不要重復激活,請直接登陸");}//用戶沒有激活,但激活碼已經激活if(System.currentTimeMillis() - user.getUpdatetime().getTime()>1000*3600*24){dao.delete(user.getId());throw new RuntimeException("激活碼超時,此用戶作廢,請重新注冊");}dao.updateState(user.getId());user.setState(1);return user;}

完成

總結

以上是生活随笔為你收集整理的javamail实现邮箱验证功能的全部內容,希望文章能夠幫你解決所遇到的問題。

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