一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - javamail實現注冊激活郵件

javamail實現注冊激活郵件

2020-09-16 15:54成兮 Java教程

這篇文章主要為大家詳細介紹了javamail實現注冊激活郵件,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

需要的jar包

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

SMTP和POP3協議概述

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

javamail實現注冊激活郵件

核心代碼實現

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
#創建數據庫表
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
);
 
//創建數據庫對應的javabean
public 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
}
 
//數據庫操作類UserDao
public 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("[email protected]", "111");
    }
   });
 
  //創建郵件對象
  Message message = new MimeMessage(session);
  //設置發件人,這里我創建了一個[email protected]用于發送郵件
  message.setFrom(new InternetAddress("[email protected]"));
  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();
 }
}

編寫成功頁面

?
1
2
3
4
5
6
7
8
9
10
11
12
<html>
 <head>
  <title>成功激活</title>
 </head>
 <body>
  <script>
   window.onload = function(){
    alert("已成功激活");
   };
  </script>
 </body>
</html>

web.xml配置兩個Servlet

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<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 protected]郵箱中有一封注冊郵箱,點擊該郵箱中的鏈接,就進入了激活頁面,然后該注冊的賬號就激活注冊成功了

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91成| 欧美日韩中文字幕一区二区高清 | 国产高清在线视频一区二区三区 | 亚洲黄色成人 | 色cccwww| 亚洲国产精品综合久久网络 | 亚飞与亚基高清国语在线观看 | 无限资源在线观看高清 | 韩国丽卡三级作品 | 亚洲午夜久久久久国产 | 97久久久亚洲综合久久88 | 精品久久久久中文字幕日本 | 继攵催眠女乱h调教 | 国产成人咱精品视频免费网站 | 国产高清一区二区三区免费视频 | 天天干天天色综合网 | 91高清国产经典在线观看 | 91色porny| 久久无码人妻AV精品一区 | 国产91在线九色 | 免费超级乱淫播放手机版 | 久久久精品日本一区二区三区 | 久久视频在线视频观看天天看视频 | 亚洲天天综合 | 亚洲高清毛片一区二区 | 国产免费专区 | 日韩亚洲欧美一区二区三区 | 日本春菜花在线中文字幕 | 99re8在线精品视频免费播放 | 日本嫩小xxxxhd | 美女胸又大又黄又www小说 | 男人在女人下面狂躁 | 国产精品视频在这里有精品 | 1986葫芦兄弟全集免费观看第十集 | 男女18一级大黄毛片免 | 天天做天天爱天天爽综合区 | 免费在线观看成年人视频 | 日本高清免费不卡在线播放 | 男人晚上适合偷偷看的污污 | 免费看成年视频网页 | 日本精工厂网址 |