iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >利用Java怎么在用户注册时发送激活邮件
  • 603
分享到

利用Java怎么在用户注册时发送激活邮件

java在用ava 2023-05-31 10:05:34 603人浏览 泡泡鱼
摘要

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

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

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; @Controllerpublic 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; @Servicepublic 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小时生效,否则重新注册账号,链接只能使用一次,请尽快激活!</br>");    sb.append("<a href=\"http://localhost:8080/springMVC/user/register?action=activate&email=");    sb.append(email);    sb.append("&validateCode=");    sb.append(user.getValidateCode());    sb.append("\">http://localhost:8080/springmvc/user/register?action=activate&email=");    sb.append(email);    sb.append("&validateCode=");    sb.append(user.getValidateCode());    sb.append("</a>");     //发送邮件    SendEmail.send(email, sb.toString());    System.out.println("发送邮件");   }      ///传递激活码和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";//发件人密码     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

<h3>注册激活</h3><fORM action="user/register?action=register" method="post">   Email:<input type="text" id="email" name="email" value="" >   <input type="submit" value="提交"></form>

register_success.jsp

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

activate_success.jsp:

<body>  账号激活成功,点击这里去登录! </body>

activate_failure.jsp:

<body>  激活失败!错误信息:${message }</body>

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

--结束END--

本文标题: 利用Java怎么在用户注册时发送激活邮件

本文链接: https://www.lsjlt.com/news/224805.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 利用Java怎么在用户注册时发送激活邮件
    这期内容当中小编将会给大家带来有关利用Java怎么在用户注册时发送激活邮件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.RegisterController.javapackage com....
    99+
    2023-05-31
    java 在用 ava
  • java实战案例之用户注册并发送邮件激活/发送邮件验证码
    目录 一、前期准备 1、准备两个邮箱账号(一个发邮件,一个收邮件)1.1)登录需要发送邮件的QQ邮箱,找到设置项1.3)生成授权码二、项目1、准备用户数据表2、i...
    99+
    2024-04-02
  • Springboot实现发送邮件及注册激活步骤
    在上一篇文章中,我们使用springboot整合邮件实现发送功能,那么下面来用邮件发送功能实现用户注册,方便我们进一步熟悉邮件发送功能的使用。实现步骤大致如下:进行用户注册同时发送一...
    99+
    2024-04-02
  • 利用Java怎么实现一个邮箱激活功能
    利用Java怎么实现一个邮箱激活功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。实现思路注册时填写邮箱,点击注册时网站系统邮箱发送激活验证链接到此邮箱,用户来激活账户点击...
    99+
    2023-05-31
    java ava
  • 怎么在Python项目中利用SMTP发送邮件
    这期内容当中小编将会给大家带来有关怎么在Python项目中利用SMTP发送邮件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。通常使用邮件 API 的邮件发送服务都需要额外的收费。因此我们再邮件测试发送的时...
    99+
    2023-06-14
  • VBS中怎么利用CDO.Message发送邮件
    这期内容当中小编将会给大家带来有关VBS中怎么利用CDO.Message发送邮件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。代码如下:Const Email_From = "still.dem...
    99+
    2023-06-08
  • 怎么在Java中利用JavaMail实现一个邮件发送功能
    这期内容当中小编将会给大家带来有关怎么在Java中利用JavaMail实现一个邮件发送功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. 电子邮件协议电子邮件的在网络中传输和网页一样需要遵从特定的协议...
    99+
    2023-05-31
    java javamail ava
  • 怎么用Python定时发送天气邮件
    这篇文章主要介绍“怎么用Python定时发送天气邮件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用Python定时发送天气邮件”文章能帮助大家解决问题。效果如图 一、获取天气def&...
    99+
    2023-06-29
  • 怎么在debian下用Exim4发送邮件
    这篇文章主要讲解了“怎么在debian下用Exim4发送邮件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在debian下用Exim4发送邮件”吧!debian下用exim4发送邮件  ...
    99+
    2023-06-13
  • 怎么用Python发送邮件
    本篇内容主要讲解“怎么用Python发送邮件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Python发送邮件”吧!Python使用SMTP发送邮件SMTP(Simple Mail Tra...
    99+
    2023-06-04
  • 怎么用html发送邮件
    这篇“怎么用html发送邮件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一...
    99+
    2024-04-02
  • 使用django怎么实现发送验证码注册邮箱
    这篇文章将为大家详细讲解有关使用django怎么实现发送验证码注册邮箱,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。视图代码lis = []#设置一个空列表用来存放发送的...
    99+
    2023-06-14
  • 如何在PHP中实现用户注册时发送短信验证码
    随着移动互联网的普及,手机号码已经成为用户注册和登录的重要凭证之一。为了保证用户账号的安全性,很多网站和应用都会在用户注册时发送短信验证码进行验证。本文将介绍如何在PHP中实现用户注册时发送短信验证码的功能,并附上具体的代码示例。一、创建短...
    99+
    2023-10-21
    PHP 短信验证码 用户注册
  • 怎么在python中使用pytest发送邮件
    今天就跟大家聊聊有关怎么在python中使用pytest发送邮件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python主要应用领域有哪些1、云计算,典型应用OpenStack。2...
    99+
    2023-06-14
  • PHP怎么利用PHPMailer实现邮件发送功能
    这篇文章将为大家详细讲解有关PHP怎么利用PHPMailer实现邮件发送功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、安装环境PHPMailer 需要 PHP 的 sockets 扩展支持另外登录...
    99+
    2023-06-29
  • PHP使用PHPMailer发送邮件时注意事项和注意点
    PHP是一种强大的编程语言,通过它我们可以构建出各种应用程序,其中邮件发送应用是很重要的一个。PHPMailer是PHP中用来发送邮件的一个第三方库,它在使用上非常简单,而且功能也非常强大。但是,在发送邮件的过程中,我们还是需要注意一些事项...
    99+
    2023-05-21
    PHPMailer 注意事项 发送邮件
  • 怎样利用python 发送MySQL慢日志邮件
    这篇文章将为大家详细讲解有关怎样利用python 发送MySQL慢日志邮件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一 需求     因为开发针对某系统做稳...
    99+
    2023-06-06
  • laravel怎么使用163邮箱发送邮件
    这篇文章主要讲解了“laravel怎么使用163邮箱发送邮件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“laravel怎么使用163邮箱发送邮件”吧!一、首先还是现在163注册一个账号并且...
    99+
    2023-07-04
  • 利用JavaMail怎么实现一个邮件发送功能
    这篇文章将为大家详细讲解有关利用JavaMail怎么实现一个邮件发送功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。用java发邮件,必须要导入新的包   &...
    99+
    2023-05-31
    javamail ava
  • PHP怎么使用laravel邮件服务发送邮件
    今天小编给大家分享一下PHP怎么使用laravel邮件服务发送邮件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。配置Lara...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作