本文实例为大家分享了javamail注册激活邮件的具体代码,供大家参考,具体内容如下
<强>需要的jar包强>
1。MySQL驱动包
<强> SMTP和POP3协议概述强>
SMTP协议称为简单邮件传输协议,是一组用于从原地址到目的地址传送邮件的规则,由它来控制信件的中转方式.SMTP协议属于TCP/IP的协议簇,SMTP是负责邮件服务器之间的寄信的通信协定POP3协议称为邮局协议版3本,也是TCP/IP协议簇的一员,基于POP3协议的服务器是用来接收信件的。每个邮件地址一般只有一个如果想要同时收取多个邮箱的信件,就需要挨个设置每个邮箱的POP3服务器地址。
核心代码实现
#创建数据库表 创建数据库javamail; 使用javamail; 创建表的用户( id auto_increment int主键, 用户名varchar(30)非空, 密码varchar(30)非空, 昵称varchar(30)不空, 电子邮件varchar(30)非空, 州int默认0 #标识是否已经激活0未激活1已激活 代码varchar (64) not null );//创建数据库对应的javabean 公开课出发{ 私人整数id; 私人字符串的用户名; 私人密码字符串; 私人字符串昵称; 私人字符串邮件; 私人整数状态; 私人字符串代码;//省略setter和getter }//数据库操作类UserDao 公开课UserDao { 私人康涅狄格州连接;//获取数据库连接 公共空间getConn () { forname (“com.mysql.jdbc.Driver”); 字符串url=" mysql: jdbc://localhost: 3306/javamail”; 字符串rootname=案? 字符串rootpass=俺俏鳌? 康涅狄格州=DriverManager.getConnection (url、rootname rootpass); }//注册 公共空间regist(出发用户){ 字符串sql="插入用户(用户名,密码,昵称,电子邮件,代码)值(& # 63;& # 63;& # 63;,& # 63;,& # 63;)”; PreparedStatement pstmt=conn.preparedCall (sql); pstmt.setString (user.getUsername ()); pstmt.setString (2, user.getPassword ()); pstmt.setString (3, user.getNickname ()); pstmt.setStirng (4, user.getEmail ()); pstmt.setString (5, user.getCode ()); pstmt.executeUpdate (); }//激活 公共空间activeByCode(字符串代码){ 字符串sql="更新用户设置状态=1,代码=零代码=& # 63;”; PreparedStatement pstmt=conn.preparedCall (sql); pstmt.setString(1、代码); pstmt.executeUpdate (); }//关闭数据库连接 公共空间closeConn () { 如果(康涅狄格州!=null) { conn.close (); } } }//一个工具类,用于获取随机代码注册激活码 公开课UUIDUtils { 公共静态字符串getUUID () { 返回UUID.randomUUID () .toString () .replace (“-”、“) + UUID.randomUUID () .toString () .replace (“-”、“); } }//index . jsp前端页面实现 & lt;形式行动=" & lt; %=request.getContextPath() %祝辞/regist。做”方法=" post "比; & lt; tr> & lt; td> & lt;标签=坝没痹谡撕? lt;/label> & lt;/td> & lt; td> & lt;输入类型=拔谋尽眓ame="用户名"/祝辞& lt;/td> & lt;/tr> & lt; tr> & lt; td> & lt;标签=懊苈搿痹诿苈? lt;/label> & lt;/td> & lt; td> & lt;输入类型=拔谋尽眓ame="密码"/祝辞& lt;/td> & lt;/tr> & lt; tr> & lt; td> & lt;标签=瓣浅啤弊4顷浅? lt;/label> & lt;/td> & lt; td> & lt;输入类型=拔谋尽眓ame="昵称"/祝辞& lt;/td> & lt;/tr> & lt; tr> & lt; td> & lt;标签=暗缱佑始弊4怯氏? lt;/label> & lt;/td> & lt; td> & lt;输入类型=拔谋尽眓ame="电子邮件"/祝辞& lt;/td> & lt;/tr> & lt; tr> & lt; td> & lt;输入类型=疤峤弧眝alue=" https://www.yisu.com/zixun/注册”/祝辞& lt;/td> & lt; td> & lt;输入类型=爸刂谩眓ame="重写“/祝辞& lt;/td> & lt;/tr> & lt;/form>//发送邮件的跑龙套工具类 公开课SendMailUitls { 公共静态孔隙sendMail(字符串,字符串代码){//会话是邮件包下的,因为是本地测试,所以第一个参数直接创建默认的即可 会话会话=会话。getInstance(新属性()、新身份(){ @Override 保护PasswordAuthentication getPasswordAuthentication () { 返回新PasswordAuthentication (“server@store.com”、“111”); } });//创建邮件对象 消息消息=new MimeMessage(会话);//设置发件人,这里我创建了一个server@store.com用于发送邮件 消息。setFrom(新InternetAddress (server@store.com)); message.setRecipient (RecipientType。,新InternetAddress ()); message.setSubject(“来自个博网的注册激活邮件”); message.setContent (“& lt; a href=' http://localhost: 8080/RegistMailWeb/active.do祝辞点我激活& lt;/a>”,“text/html; charset=utf - 8”);//发送邮件 Transport.send(消息); } }//regist.doServlet实现 公开课RegistServlet扩展HttpServlet { 公共空间init () { super.init (); } 公共空间服务(HttpServletRequest请求,HttpServletResponse响应){//获取数据 字符串的用户名=request.getParameter(“用户名”); 字符串密码=request.getParameter(“密码”); 字符串昵称=request.getParameter(“昵称”); 字符串邮件=request.getParameter(“电子邮件”);//封装数据 出发用户=new出发(); user.setUsername(用户名); user.setPassword(密码); user.setNickname(昵称); user.setEmail(电子邮件); user.setCode (UUIDUtils.getUUID ());//注册 UserDao刀=new UserDao (); dao.getConn (); dao.regist(用户); dao.closeConn ();//发送邮件 SendMailUtils.sendMail(电子邮件、user.getCode ()); } 公共空间摧毁(){ super.desroy (); } }//创建活跃。做Servlet用于激活邮箱吗 公开课ActiveServlet HttpServlet { 公共空间init () { super.init (); } 公共空间服务(HttpServletRequest请求,HttpServletResponse响应){//获取数据 字符串代码=request.getParameter(“代码”);//数据库判断对代码应是否存在,(这里就不进行判断了,直接进行比对)状态=1,代码=零代表激活 UserDao刀=new UserDao (); dao.activeByCode(代码);//重定向success.jsp request.getRequestDispatcher (“/web - inf/success.jsp”) forward格式(请求、响应); } 公共空间摧毁(){ super.destroy (); } }javamail实现注册激活邮件