javamail实现注册激活邮件

网友投稿 264 2023-05-21


javamail实现注册激活邮件

本文实例为大家分享了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

);

//创建数据库对应的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前端页面实现

//发送邮件的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("点我激活","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()ZeFyFYRG{

super.destroy();

}

}

编写成功页面

web.xml配置两个Servlet

RegistServlet

com.servlet.RegistServlet

RegistServlet

/regist.do

ActiveServlet

com.servlet.ActiveServlet

</servlet>

ActiveServlet

/active.do

效果

打开tomcat服务器和foxmail邮件服务器,然后进入该web首页,点击注册,可以在foxmail中看到对应的email@store.com邮箱中有一封注册邮箱,点击该邮箱中的链接,就进入了激活页面,然后该注册的账号就激活注册成功了


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:spring boot的拦截器简单使用示例代码
下一篇:java实现ftp上传 如何创建文件夹
相关文章

 发表评论

暂时没有评论,来抢沙发吧~