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(){
super.destroy();
}
}
编写成功页面
成功激活
web.xml配置两个Servlet
RegistServlet com.servlet.RegistServlet RegistServlet /regist.do ActiveServlet com.servlet.ActiveServlet ActiveServlet /active.do
效果
打开tomcat服务器和foxmail邮件服务器,然后进入该web首页,点击注册,可以在foxmail中看到对应的email@store.com邮箱中有一封注册邮箱,点击该邮箱中的链接,就进入了激活页面,然后该注册的账号就激活注册成功了
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。
标题名称:javamail实现注册激活邮件
标题链接:http://jxruijie.cn/article/psedhe.html
