利用Java怎么在用户注册时发送激活邮件-古蔺大橙子建站
RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
利用Java怎么在用户注册时发送激活邮件

这期内容当中小编将会给大家带来有关利用Java怎么在用户注册时发送激活邮件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

创新互联是一家专业提供汶上企业网站建设,专注与网站设计制作、网站建设H5技术、小程序制作等业务。10年已为汶上众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。

1.RegisterController.java

package com.app.web.controller;
import java.text.ParseException;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import com.app.service.impl.RegisterValidateService;
import com.app.tools.ServiceException;
 
@Controller
public class RegisterController {
 
  @Resource
  private RegisterValidateService service;
 
  @RequestMapping(value="/user/register",method={RequestMethod.GET,RequestMethod.POST})
  public ModelAndView load(HttpServletRequest request,HttpServletResponse response) throws ParseException{
    String action = request.getParameter("action");
    ModelAndView mav=new ModelAndView();
    if("register".equals(action)) {
      //注册
      String email = request.getParameter("email");
      service.processregister(email);//发邮箱激活
      mav.addObject("text","注册成功");
      mav.setViewName("register/register_success");
    }
    else if("activate".equals(action)) {
      //激活
      String email = request.getParameter("email");//获取email
      String validateCode = request.getParameter("validateCode");//激活码
      try {
        service.processActivate(email , validateCode);//调用激活方法
        mav.setViewName("register/activate_success");
      } catch (ServiceException e) {
        request.setAttribute("message" , e.getMessage());
        mav.setViewName("register/activate_failure");
      }
    }
    return mav;
  }
  
}

2.RegisterValidateService.java

package com.app.service.impl;
import java.text.ParseException;
import java.util.Date;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.app.dao.UserDao;
import com.app.tools.MD5Tool;
import com.app.tools.MD5Util;
import com.app.tools.SendEmail;
import com.app.tools.ServiceException;
import com.code.model.UserModel;
 
@Service
public class RegisterValidateService {
 
  @Autowired
  private UserDao userDao;
 
  /**
   * 处理注册
  */
  public void processregister(String email){
    UserModel user=new UserModel();
    Long as=5480l;
    user.setId(as);
    user.setName("xiaoming");
    user.setPassword("324545");
    user.setEmail(email);
    user.setRegisterTime(new Date());
    user.setStatus(0);
    ///如果处于安全,可以将激活码处理的更复杂点,这里我稍做简单处理
    //user.setValidateCode(MD5Tool.MD5Encrypt(email));
    user.setValidateCode(MD5Util.encode2hex(email));
 
    userDao.save(user);//保存注册信息
 
    ///邮件的内容
    StringBuffer sb=new StringBuffer("点击下面链接激活账号,48小时生效,否则重新注册账号,链接只能使用一次,请尽快激活!
");     sb.append("http://localhost:8080/springmvc/user/register?action=activate&email=");     sb.append(email);     sb.append("&validateCode=");     sb.append(user.getValidateCode());     sb.append("");       //发送邮件     SendEmail.send(email, sb.toString());     System.out.println("发送邮件");     }     /**    * 处理激活    * @throws ParseException    */    ///传递激活码和email过来   public void processActivate(String email , String validateCode)throws ServiceException, ParseException{       //数据访问层,通过email获取用户信息     UserModel user=userDao.find(email);     //验证用户是否存在     if(user!=null) {        //验证用户激活状态        if(user.getStatus()==0) {         ///没激活         Date currentTime = new Date();//获取当前时间          //验证链接是否过期         currentTime.before(user.getRegisterTime());         if(currentTime.before(user.getLastActivateTime())) {            //验证激活码是否正确            if(validateCode.equals(user.getValidateCode())) {              //激活成功, //并更新用户的激活状态,为已激活             System.out.println("==sq==="+user.getStatus());             user.setStatus(1);//把状态改为激活             System.out.println("==sh==="+user.getStatus());             userDao.update(user);           } else {              throw new ServiceException("激活码不正确");            }          } else { throw new ServiceException("激活码已过期!");          }        } else {         throw new ServiceException("邮箱已激活,请登录!");        }      } else {       throw new ServiceException("该邮箱未注册(邮箱地址不存在)!");      }      } }   

3.UserModel.java

package com.code.model;
import java.beans.Transient;
import java.util.Calendar;
import java.util.Date;
 
public class UserModel {
  private Long id;
 private String name;
 private String password;
 private String email;//注册账号
 private int status=0;//激活状态
 private String validateCode;//激活码
 private Date registerTime;//注册时间
 
   
  /////////////////
  public Long getId() {
    return id;
  }
 
  public void setId(Long id) {
    this.id = id;
  }
 
  public String getName() {
    return name;
  }
 
  public void setName(String name) {
    this.name = name;
  }
 
  public String getPassword() {
    return password;
  }
 
  public void setPassword(String password) {
    this.password = password;
  }
 
  public String getEmail() {
    return email;
  }
 
  public void setEmail(String email) {
    this.email = email;
  }
 
  public int getStatus() {
    return status;
  }
 
  public void setStatus(int status) {
    this.status = status;
  }
 
  public String getValidateCode() {
    return validateCode;
  }
 
  public void setValidateCode(String validateCode) {
    this.validateCode = validateCode;
  }
 
  public Date getRegisterTime() {
    return registerTime;
  }
 
  public void setRegisterTime(Date registerTime) {
    this.registerTime = registerTime;
  }
  /////////////////////////
  @Transient
  public Date getLastActivateTime() {
    Calendar cl = Calendar.getInstance();
    cl.setTime(registerTime);
    cl.add(Calendar.DATE , 2);
 
    return cl.getTime();
  }
 
}

4.SendEmail.java

package com.app.tools;
import java.util.Date;
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.InternetAddress;
import javax.mail.internet.MimeMessage;
 
public class SendEmail {
 
  public static final String HOST = "smtp.163.com";
  public static final String PROTOCOL = "smtp"; 
  public static final int PORT = 25;
  public static final String FROM = "xxxxx@xx.com";//发件人的email
  public static final String PWD = "123456";//发件人密码
 
  /**
   * 获取Session
   * @return
   */
  private static Session getSession() {
    Properties props = new Properties();
    props.put("mail.smtp.host", HOST);//设置服务器地址
    props.put("mail.store.protocol" , PROTOCOL);//设置协议
    props.put("mail.smtp.port", PORT);//设置端口
    props.put("mail.smtp.auth" , true);
 
    Authenticator authenticator = new Authenticator() {
      @Override
      protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(FROM, PWD);
      }
 
    };
    Session session = Session.getDefaultInstance(props , authenticator);
 
    return session;
  }
 
  public static void send(String toEmail , String content) {
    Session session = getSession();
    try {
      System.out.println("--send--"+content);
      // Instantiate a message
      Message msg = new MimeMessage(session);
 
      //Set message attributes
      msg.setFrom(new InternetAddress(FROM));
      InternetAddress[] address = {new InternetAddress(toEmail)};
      msg.setRecipients(Message.RecipientType.TO, address);
      msg.setSubject("账号激活邮件");
      msg.setSentDate(new Date());
      msg.setContent(content , "text/html;charset=utf-8");
 
      //Send the message
      Transport.send(msg);
    }
    catch (MessagingException mex) {
      mex.printStackTrace();
    }
  }
}

5.jsp页面  

 registerEmailValidae.jsp

注册激活

   Email:    

register_success.jsp


  恭喜你注册成功!请到注册的邮箱点击链接激活!
 

activate_success.jsp:


  账号激活成功,点击这里去登录!
 

activate_failure.jsp:


  激活失败!错误信息:${message }

上述就是小编为大家分享的利用Java怎么在用户注册时发送激活邮件了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。


分享标题:利用Java怎么在用户注册时发送激活邮件
网站网址:http://scgulin.cn/article/gdjiss.html