激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - javamail實(shí)現(xiàn)注冊(cè)激活郵件

javamail實(shí)現(xiàn)注冊(cè)激活郵件

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

這篇文章主要為大家詳細(xì)介紹了javamail實(shí)現(xiàn)注冊(cè)激活郵件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了javamail注冊(cè)激活郵件的具體代碼,供大家參考,具體內(nèi)容如下

需要的jar包

1.MySQL驅(qū)動(dòng)包
2.mail.jar包

SMTP和POP3協(xié)議概述

SMTP協(xié)議稱為簡(jiǎn)單郵件傳輸協(xié)議,是一組用于從原地址到目的地址傳送郵件的規(guī)則,由它來(lái)控制信件的中轉(zhuǎn)方式。SMTP協(xié)議屬于TCP/IP的協(xié)議簇,SMTP是負(fù)責(zé)郵件服務(wù)器之間的寄信的通信協(xié)定 POP3協(xié)議稱為郵局協(xié)議版本3,也是TCP/IP協(xié)議簇的一員,基于POP3協(xié)議的服務(wù)器是用來(lái)接收信件的。每個(gè)Email地址一般只有一個(gè)如果想要同時(shí)收取多個(gè)郵箱的信件,就需要挨個(gè)設(shè)置每個(gè)郵箱的POP3服務(wù)器地址。

javamail實(shí)現(xiàn)注冊(cè)激活郵件

核心代碼實(shí)現(xiàn)

?
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
#創(chuàng)建數(shù)據(jù)庫(kù)表
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, #標(biāo)識(shí)是否已經(jīng)激活 0未激活1已激活
 code varchar(64) not null
);
 
//創(chuàng)建數(shù)據(jù)庫(kù)對(duì)應(yīng)的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
}
 
//數(shù)據(jù)庫(kù)操作類UserDao
public class UserDao{
 private Connection conn ;
 //獲取數(shù)據(jù)庫(kù)連接
 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);
 }
 
 //注冊(cè)
 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();
 }
 
 //關(guān)閉數(shù)據(jù)庫(kù)連接
 public void closeConn(){
  if(conn != null){
   conn.close();
  }
 }
}
 
//一個(gè)工具類,用于獲取隨機(jī)code注冊(cè)激活碼
public class UUIDUtils{
 public static String getUUID(){
  return UUID.randomUUID().toString().replace("-","")+UUID.randomUUID().toString().replace("-","");
 }
}
 
 
//index.jsp前端頁(yè)面實(shí)現(xiàn)
<form action="<%=request.getContextPath()%>/regist.do" method="post">
 <tr>
  <td><label for="username">賬號(hào)</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="注冊(cè)" /></td>
  <td><input type="reset" name="重寫" /></td>
 </tr>
</form>
 
//發(fā)送郵件的Utils工具類
public class SendMailUitls{
 
 public static void sendMail(String to,String code){
  //session是mail包下的,因?yàn)槭潜镜販y(cè)試,所以第一個(gè)參數(shù)直接創(chuàng)建默認(rèn)的即可
  Session session = Session.getInstance(new Properties(),new Authenticator() {
    @Override
    protected PasswordAuthentication getPasswordAuthentication(){
     return new PasswordAuthentication("[email protected]", "111");
    }
   });
 
  //創(chuàng)建郵件對(duì)象
  Message message = new MimeMessage(session);
  //設(shè)置發(fā)件人,這里我創(chuàng)建了一個(gè)[email protected]用于發(fā)送郵件
  message.setFrom(new InternetAddress("[email protected]"));
  message.setRecipient(RecipientType.TO, new InternetAddress(to));
  message.setSubject("來(lái)自個(gè)博網(wǎng)的注冊(cè)激活郵件");
  message.setContent("<a href='http://localhost:8080/RegistMailWeb/active.do'>點(diǎn)我激活</a>","text/html;charset=utf-8");
 
  //發(fā)送郵件
  Transport.send(message);
 }
}
 
 
//regist.doServlet實(shí)現(xiàn)
public class RegistServlet extends HttpServlet{
 public void init(){
  super.init();
 }
 
 public void service(HttpServletRequest request,HttpServletResponse response){
  //獲取數(shù)據(jù)
  String username = request.getParameter("username");
  String password = request.getParameter("password");
  String nickname = request.getParameter("nickname");
  String email = request.getParameter("email");
 
  //封裝數(shù)據(jù)
  UserBean user = new UserBean();
  user.setUsername(username);
  user.setPassword(password);
  user.setNickname(nickname);
  user.setEmail(email);
  user.setCode(UUIDUtils.getUUID());
 
  //注冊(cè)
  UserDao dao = new UserDao();
  dao.getConn();
  dao.regist(user);
  dao.closeConn();
 
  //發(fā)送郵件
  SendMailUtils.sendMail(email,user.getCode());
 }
 
 public void destroy(){
  super.desroy();
 }
}
 
//創(chuàng)建active.do Servlet用于激活郵箱
public class ActiveServlet HttpServlet{
 public void init(){
  super.init();
 }
 
 public void service(HttpServletRequest request,HttpServletResponse response){
 
  //獲取數(shù)據(jù)
  String code = request.getParameter("code");
 
  //數(shù)據(jù)庫(kù)判斷對(duì)應(yīng)code是否存在,(這里就不進(jìn)行判斷了,直接進(jìn)行比對(duì))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();
 }
}

編寫成功頁(yè)面

?
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配置兩個(gè)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服務(wù)器和foxmail郵件服務(wù)器,然后進(jìn)入該web首頁(yè),點(diǎn)擊注冊(cè),可以在foxmail中看到對(duì)應(yīng)的[email protected]郵箱中有一封注冊(cè)郵箱,點(diǎn)擊該郵箱中的鏈接,就進(jìn)入了激活頁(yè)面,然后該注冊(cè)的賬號(hào)就激活注冊(cè)成功了

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: h视频免费在线观看 | 手机av在线电影 | 色综合视频| 韩国精品一区二区三区四区五区 | 性欧美极品xxxx欧美一区二区 | 中文字幕免费在线看 | 草草在线观看 | 日本黄视频在线观看 | 欧美在线国产 | 成人在线精品视频 | 精品一区二区三区网站 | 爽爽淫人综合网网站 | 国产一区二区久久精品 | v11av在线视频成人 | 久久最新网址 | 欧洲精品久久久久69精品 | 国产日本在线播放 | 国产欧美精品一区二区三区四区 | 99久久久久国产精品免费 | 久久久精品视 | 欧美日本色 | 欧美一级毛片一级毛片 | 国产精品久久久乱弄 | 日日噜噜噜噜久久久精品毛片 | 91精品国产刺激国语对白 | 国产羞羞视频在线观看 | 国产污污视频 | 欧美一区二区三区不卡免费观看 | 看个毛片| 原来神马影院手机版免费 | 一级黄色在线免费观看 | 久草在线手机观看 | 91九色视频在线观看 | 国产精品久久久久久238 | 91看片国产 | 美女黄色毛片免费看 | 羞羞视频2023 | 欧美大片一级毛片 | 国产成人av免费观看 | 中文字幕极速在线观看 | 日韩一级成人 |