我们平时注册一些平台账户的时候经常会有使用邮箱激活验证或者短信验证码验证才能注册成功,这两个功能都是调用邮箱或者运营商提供的接口来完成响应的验证功能,只不过运营商需要收费这里就演示一下通过发送邮箱激活验证的邮件来完成一个注册功能
1. 首先需要使用邮箱的接口需要导入邮箱的jar包,这里直接在pom.xml中依赖:
     <!-- 邮件工具包 --><dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version></dependency><!-- 编码工具包 --><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.10</version></dependency>
2. 还需要在spring.xml也就是applicationContext.xml中配置定邮箱格式等等:
 <context:component-scan base-package="com.hxzy.service" /><!-- 邮箱的工具类,定义邮箱格式,发送邮箱账号,授权码,编码格式,对应mail.properties中 --><bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"><property name="host" value="${mail.host}" /><property name="username" value="${mail.username}" /><property name="password" value="${mail.password}" /><property name="defaultEncoding" value="${mail.defaultEncoding}" /><property name="javaMailProperties"><props><prop key="mail.smtp.auth">true</prop></props></property></bean>

上面引用的值放在properties文件中,方便管理和修改:

mail.host=smtp.qq.com
mail.username=111111111@qq.com  这里是要往外发送邮件的账号
mail.password=lntgrvwxnueaiabj
mail.defaultEncoding=utf-8
3. 用户信息在controller接收到之后,在serviceimpl中实现往数据库新增操作,这里是直接调用的通用mapper的sql语句执行的新增
@Service
public class UserServiceImp extends BaseServiceImpl<User> implements UserService {//spring整合的用来发送邮件的工具类@AutowiredJavaMailSender sender;@AutowiredUserMapper usermapper;@Overridepublic void register(User user) {//用来生成邮箱中的激活验证码,随机生成String activecode = UUID.randomUUID().toString();//激活状态默认为0,邮箱验证激活之后把0改成1user.setActivationState(0);super.save(user);//添加操作//新增成功后开始发送邮件MimeMessage msg = sender.createMimeMessage();MimeMessageHelper msghelp = new MimeMessageHelper(msg);try {msghelp.setFrom("1370140328@qq.com");msghelp.setTo(user.getEmail());msghelp.setSubject("激活验证");String content = "<div style='width:300px;height:300px;background-color:gray;margin:0px auto;'>";content +="<h1>欢迎您注册知乎网</h1>";content +="<p>请点击以下链接进行激活</p>";//根据这里的请求网址接收提交的参数并根据参数修改数据库中的激活状态content +="<p><a href='http://localhost:8081/user/active?activationCode="+activecode+"&id="+user.getId()+"'>点击激活</a></p>";content +="</div>";msghelp.setText(content, true);//发送邮件sender.send(msg);} catch (MessagingException e) {e.printStackTrace();}}
4.根据上面代码中点击的连接所发出的请求以及携带的参数更改数据库中的激活状态完成注册:

controller

//判断注册时是否激活成功修改状态值@RequestMapping("active")public String active(User user){if(us.updateByIdAndCode(user)>0){return "redirect:/login.jsp#activateSuccess";}return "login";}

最终执行的是dao层的mapper

<mapper namespace="com.hxzy.mapper.UserMapper"><update id="updateByIdAndCode">update user set activation_state = 1 where user_id = #{id} and activation_code = #{activationCode}</update>
</mapper>

实现注册功能添加邮箱激活验证相关推荐

  1. JavaWeb25.3【综合案例:注册功能(含邮箱激活账号)】

    register.html 1 <!DOCTYPE html>2 <html lang="en">3 <head>4 <meta char ...

  2. 使用 Java Mail 实现注册时邮箱激活验证功能

    最近在做毕设中实现注册功能时使用到了邮箱激活验证,在此总结下. 简介 JavaMail 是提供给开发者处理电子邮件相关的编程接口,它是 SUN 发布的用来处理 email 的 API ,它可以方便地执 ...

  3. Java实现注册邮箱激活验证

    最近从项目分离出来的注册邮箱激活功能,整理一下,方便下次使用 RegisterValidateService.java package com.app.service.impl;import java ...

  4. Mac自带的邮件 添加邮箱 无法验证账户或密码【已解决】

    ①首先登录你要添加的邮箱(本文演示用的是网易邮箱) ②在邮箱-设置 页面,找到POP3/SMTP/IMAP选项 ③POP3/SMTP/IMAP原本是关闭的,需要点击开启 ④手机扫码发送短信 ④验证成功 ...

  5. asp.net mvc 注册中的邮箱激活功能实现(二)

    邮件发送功能封装 /// <summary>         /// 发送注册邮件         /// </summary>         /// <param n ...

  6. Django 慕课前后端实战 -- xadmin后台管理系统、登录模块、注册模块、邮箱激活链接、找回密码

    注意:win下面 pip install 安装python module失败后,可以去https://www.lfd.uci.edu/~gohlke/pythonlibs/网站才在相应的module, ...

  7. java实现用户注册邮箱激活验证

    功能:通过邮箱注册账号,注册成功会向邮箱发送激活邮件.提示用户登录邮箱进行账户激活,方可使用账号. 流程:本质上就是向user表里新增一条数据,user表中应有一个code字段存放随机串.code在添 ...

  8. 注册时,邮箱自动发送验证

    PHPMailer是一个用于发送电子邮件的PHP函数包,下载PHPMailer-master,提取里面的4个文件:class.phpmailer.php,class.pop3.php,class.sm ...

  9. SSM登录注册和邮箱激活

    1:首先是html1的样式 <!DOCTYPE html> <html lang="en"> <head><meta charset=&q ...

  10. Day212.OAuth2、微信二维码登入注册功能、用户登录信息前后端供、讲师列表前后端 -谷粒学院

    谷粒学院 OAuth2的使用场景 一.OAuth2解决什么问题 1.OAuth2提出的背景 照片拥有者想要在云冲印服务上打印照片,云冲印服务需要访问云存储服务上的资源 2.图例 资源拥有者:照片拥有者 ...

最新文章

  1. 计算机初中教师资格教案,2018教师资格面试:初中信息技术教案《认识WINDOWS》
  2. redis 导出导入详解
  3. JProfiler 11中文版
  4. LeetCode 783. 二叉搜索树结点最小距离(中序遍历)
  5. 千方科技的中场战事:选择、进化与野望
  6. 经典算法-(一)汉诺塔(河内之塔)
  7. php的ob缓存详解
  8. SQL注入语句(详细)
  9. 云计算现在好就业吗?薪资怎么样?
  10. cortex系列处理器排行_谁有ARM Cortex-A系列(A53、A57、A73等)处理器性能分类与对比??...
  11. 转载 测试面试问题总汇
  12. 会写 Parser、Tokenizer 是什么水平?
  13. mye连接mysql数据库_MySQL_如何在Java程序中访问mysql数据库中的数据并进行简单的操作,在上篇文章给大家介绍了Myeclip - phpStudy...
  14. word里表格断页怎么办?(如何处理word里面表格断页问题)【知足且坚定,温柔且上进---两牛博客】
  15. 基于mini2440嵌入式linux上整合一套Domoticz智能家居系统(八)使用domoticz+mosquitto+Android客户端实现控制mini2440上的LED(一)
  16. 七牛云上传图片和视频
  17. UVa Problem 10254 The Priest Mathematician (牧师数学家)
  18. 2019 年度个人深度总结
  19. Three.js物理引擎与物体的相互作用——关联材质对摩擦力弹性影响、物体运动方式、作用力相关
  20. 三极管静态工作点的估算

热门文章

  1. 如果程序员能早知道这些该有多好!
  2. 51单片机ADDA数模转换
  3. 从行业共生到产业共生——2021 MWC上海展观察
  4. 如何成为一个优秀的测试工程师
  5. MES管理系统应用环境分析,以及实施面临的挑战
  6. SEDANSPOT Detecting Anomalies in Edge Streams阅读记录
  7. 如何识别Android渠道安装来源追踪?
  8. maya制作玻璃材质
  9. 各向异性导电高分子复合薄膜-供应石墨烯基透明导电/聚丙烯腈纳米二维氮化硼纤维薄膜/机械剥离单层MoS2/MoSe2/MoTe2/WS2/WSe2/WTe2/石墨烯定制
  10. h3c路由器msr2600-10,msr3600-28调试记录