国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

javamail實現注冊激活郵件

2019-11-26 12:30:30
字體:
來源:轉載
供稿:網友

本文實例為大家分享了javamail注冊激活郵件的具體代碼,供大家參考,具體內容如下

需要的jar包

1.MySQL驅動包
2.mail.jar包

SMTP和POP3協議概述

SMTP協議稱為簡單郵件傳輸協議,是一組用于從原地址到目的地址傳送郵件的規則,由它來控制信件的中轉方式。SMTP協議屬于TCP/IP的協議簇,SMTP是負責郵件服務器之間的寄信的通信協定 POP3協議稱為郵局協議版本3,也是TCP/IP協議簇的一員,基于POP3協議的服務器是用來接收信件的。每個Email地址一般只有一個如果想要同時收取多個郵箱的信件,就需要挨個設置每個郵箱的POP3服務器地址。

核心代碼實現

#創建數據庫表create database javamail;use javamail;create table user( id int primary key auto_increment, username varchar(30) not null, password varchar(30) not null, nickname varchar(30) not null, email varchar(30) not null, state int default 0, #標識是否已經激活 0未激活1已激活 code varchar(64) not null);//創建數據庫對應的javabeanpublic class UserBean{ private Integer id; private String username; private String password; private String nickname; private String email; private Integer state; private String code; //省略setter and getter}//數據庫操作類UserDaopublic class UserDao{ private Connection conn ; //獲取數據庫連接 public void getConn(){  Class.forName("com.mysql.jdbc.Driver");  String url = "mysql:jdbc://localhost:3306/javamail";  String rootname = "root";  String rootpass = "chengxi";  conn = DriverManager.getConnection(url,rootname,rootpass); } //注冊 public void regist(UserBean user){  String sql = "insert into user(username,password,nickname,email,code) values(?,?,?,?,?)";  PreparedStatement pstmt = conn.preparedCall(sql);  pstmt.setString(1,user.getUsername());  pstmt.setString(2,user.getPassword());  pstmt.setString(3,user.getNickname());  pstmt.setStirng(4,user.getEmail());  pstmt.setString(5,user.getCode());  pstmt.executeUpdate();  } //激活 public void activeByCode(String code){  String sql = "update user set state=1,code=null where code=?";  PreparedStatement pstmt = conn.preparedCall(sql);  pstmt.setString(1,code);  pstmt.executeUpdate();  } //關閉數據庫連接 public void closeConn(){  if(conn != null){   conn.close();  } }}//一個工具類,用于獲取隨機code注冊激活碼public class UUIDUtils{ public static String getUUID(){  return UUID.randomUUID().toString().replace("-","")+UUID.randomUUID().toString().replace("-",""); }}//index.jsp前端頁面實現<form action="<%=request.getContextPath()%>/regist.do" method="post"> <tr>  <td><label for="username">賬號</label></td>  <td><input type="text" name="username" /></td> </tr> <tr>  <td><label for="password">密碼</label></td>  <td><input type="text" name="password" /></td> </tr> <tr>  <td><label for="nickname">昵稱</label></td>  <td><input type="text" name="nickname" /></td> </tr> <tr>  <td><label for="email">郵箱</label></td>  <td><input type="text" name="email" /></td> </tr> <tr>  <td><input type="submit" value="注冊" /></td>  <td><input type="reset" name="重寫" /></td> </tr></form>//發送郵件的Utils工具類public class SendMailUitls{ public static void sendMail(String to,String code){  //session是mail包下的,因為是本地測試,所以第一個參數直接創建默認的即可  Session session = Session.getInstance(new Properties(),new Authenticator() {    @Override    protected PasswordAuthentication getPasswordAuthentication(){     return new PasswordAuthentication("server@store.com", "111");    }   });  //創建郵件對象  Message message = new MimeMessage(session);  //設置發件人,這里我創建了一個server@store.com用于發送郵件  message.setFrom(new InternetAddress("server@store.com"));  message.setRecipient(RecipientType.TO, new InternetAddress(to));  message.setSubject("來自個博網的注冊激活郵件");  message.setContent("<a href='http://localhost:8080/RegistMailWeb/active.do'>點我激活</a>","text/html;charset=utf-8");  //發送郵件  Transport.send(message); } }//regist.doServlet實現public class RegistServlet extends HttpServlet{ public void init(){  super.init(); } public void service(HttpServletRequest request,HttpServletResponse response){  //獲取數據  String username = request.getParameter("username");  String password = request.getParameter("password");  String nickname = request.getParameter("nickname");  String email = request.getParameter("email");  //封裝數據  UserBean user = new UserBean();  user.setUsername(username);  user.setPassword(password);  user.setNickname(nickname);  user.setEmail(email);  user.setCode(UUIDUtils.getUUID());  //注冊  UserDao dao = new UserDao();  dao.getConn();  dao.regist(user);  dao.closeConn();  //發送郵件  SendMailUtils.sendMail(email,user.getCode()); } public void destroy(){  super.desroy(); }} //創建active.do Servlet用于激活郵箱public class ActiveServlet HttpServlet{ public void init(){  super.init(); } public void service(HttpServletRequest request,HttpServletResponse response){  //獲取數據  String code = request.getParameter("code");  //數據庫判斷對應code是否存在,(這里就不進行判斷了,直接進行比對)state=1&code=null代表激活  UserDao dao = new UserDao();  dao.activeByCode(code);  //重定向success.jsp  request.getRequestDispatcher("/WEB-INF/success.jsp").forward(request,response); } public void destroy(){  super.destroy(); }}

編寫成功頁面

<html> <head>  <title>成功激活</title> </head> <body>  <script>   window.onload = function(){    alert("已成功激活");   };  </script> </body></html>

web.xml配置兩個Servlet

<servlet> <servlet-name>RegistServlet</servlet-name> <servlet-class>com.servlet.RegistServlet</servlet-class></servlet><servlet-mapping> <servlet-name>RegistServlet</servlet-name> <url-pattern>/regist.do</url-pattern></servlet-mapping><servlet> <servlet-name>ActiveServlet</servlet-name> <servlet-class>com.servlet.ActiveServlet</servlet-class></servlet><servlet-mapping> <servlet-name>ActiveServlet</servlet-name><url-pattern>/active.do</url-pattern>

效果

打開tomcat服務器和foxmail郵件服務器,然后進入該web首頁,點擊注冊,可以在foxmail中看到對應的email@store.com郵箱中有一封注冊郵箱,點擊該郵箱中的鏈接,就進入了激活頁面,然后該注冊的賬號就激活注冊成功了

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安阳县| 明星| 菏泽市| 维西| 方正县| 盐池县| 九龙坡区| 句容市| 平和县| 庄河市| 自治县| 佛冈县| 山东省| 称多县| 祁连县| 山阴县| 徐汇区| 郯城县| 滨州市| 沛县| 鞍山市| 盐城市| 株洲县| 安岳县| 启东市| 铜川市| 阆中市| 华安县| 宽甸| 陆河县| 江城| 米林县| 晴隆县| 望都县| 金华市| 马公市| 神木县| 梨树县| 三江| 岫岩| 沽源县|