注册后邮箱激活功能实现

注册时邮箱激活功能的实现思想

在数据库表中添加一个用来检测用户是否注册的状态值,注册的成功的时候,在数据库中添加一个随机生成的一串code,通过获取到的前端的邮箱实现自动发送邮件的功能。当用户完成注册就将其状态值改变并删除随机生成的code

servlet实现代码

		Map map = request.getParameterMap();User user=new User();MyBeanUtils.populate(user, map);//获取随机生成的iduser.setUid(UUIDUtils.getId());//获取随机生成的codeuser.setCode(UUIDUtils.getCode());//设置初始状态吗user.setState(0);UserService userService=new UserServiceImp();try {userService.uerRegist(user);request.setAttribute("msg","用户注册成功,请激活");MailUtils.sendMail(user.getEmail(), user.getCode());} catch (Exception e) {// TODO: handle exceptionrequest.setAttribute("msg","用户注册失败,请重新注册");}return "/jsp/info.jsp";}	public String active(HttpServletRequest request, HttpServletResponse response) throws Exception {//获取去code值String code=request.getParameter("code");//调用service方法判断是否激活成功UserService userService=new UserServiceImp();boolean check=userService.userActive(code);//根据返回的布尔值进行相应的跳转if(check){request.setAttribute("msg", "用户激活成功,请登录!");return "/jsp/login.jsp";}else{request.setAttribute("msg", "用户激活失败,请重新激活!");return "/jsp/info.jsp";}} ```## 用到的工具### 随机生成代码
==package cn.itcast.store.utils;import java.util.UUID;public class UUIDUtils {/*** 随机生成id* @return*/public static String getId(){return UUID.randomUUID().toString().replace("-", "").toUpperCase();}public static String getUUID64(){return getId()+getId();}/*** 生成随机码* @return*/public static String getCode(){return getId();}public static void main(String[] args) {System.out.println(getId());}
}==### 邮箱发送器
package cn.itcast.store.utils;import java.util.Properties;import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;public class MailUtils {public static void sendMail(String email, String emailMsg)throws AddressException, MessagingException {// 1.创建一个程序与邮件服务器会话对象 SessionProperties props = new Properties();//设置发送的协议//props.setProperty("mail.transport.protocol", "SMTP");//设置发送邮件的服务器//props.setProperty("mail.host", "smtp.126.com");//props.setProperty("mail.smtp.auth", "true");// 指定验证为true// 创建验证器Authenticator auth = new Authenticator() {public PasswordAuthentication getPasswordAuthentication() {//设置发送人的帐号和密码return new PasswordAuthentication("admin@store.com", "root");}};Session session = Session.getInstance(props, auth);// 2.创建一个Message,它相当于是邮件内容Message message = new MimeMessage(session);//设置发送者message.setFrom(new InternetAddress("admin@store.com"));//设置发送方式与接收者message.setRecipient(RecipientType.TO, new InternetAddress(email)); //设置邮件主题message.setSubject("用户激活");// message.setText("这是一封激活邮件,请点击");String url="http://localhost:8080/store_07/UserServlet?method=active&code="+emailMsg;String content="

来自购物天堂的激活邮件!激活请点击以下链接!

"+url+"

";//设置邮件内容message.setContent(content, "text/html;charset=utf-8");// 3.创建 Transport用于将邮件发送Transport.send(message);}public static void main(String[] args) throws AddressException, MessagingException {MailUtils.sendMail("aaa@store.com", "1234567890");System.out.println("OK");} }


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部