功能:通过邮箱注册账号,注册成功会向邮箱发送激活邮件。提示用户登录邮箱进行账户激活,方可使用账号。

流程:本质上就是向user表里新增一条数据,user表中应有一个code字段存放随机串。code在添加用户时随机生成(uuid),发送邮件时把code值带到邮件链接中用于查找唯一账户,然后判断用户状态,进行激活。

具体实现如下:

一、添加发送邮件需要的maven,这里用的是javax.mail
 <dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version></dependency><dependency><groupId>javax.activation</groupId><artifactId>activation</artifactId><version>1.1.1</version></dependency>
二、application中mail配置


这里测试使用的qq邮箱,关于如何获取授权码请点击这里:获取授权码

三、MailConfig类对应加载配置
package com.weavewan.sdwan.user.config;import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;/*** @author wshanshi* @version 1.0* @date 2020/2/12 10:32*/
@Data
@Component
@ConfigurationProperties(prefix = "mail.config")
public class MailConfig {// 指定发送邮件的主机private String host;// 邮件服务器private String mailService;// 认证private String auth;// 发件人邮箱账号private String sender;// 授权码private String code;private String sslEnable;private String sslSocketFactory;}
四、Mail工具类
package com.weavewan.sdwan.user.util;import com.sun.mail.util.MailSSLSocketFactory;
import com.weavewan.sdwan.user.config.MailConfig;
import org.springframework.context.ApplicationContext;import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;/*** 邮件发送类** @author wshanshi* @version 1.0* @date 2020/2/8 13:57*/
public class MailUtil {private ApplicationContext applicationContext = SpringUtils.getApplicationContext();private MailConfig mailConfig = applicationContext.getBean(MailConfig.class);private String email;// 收件人邮箱private String code;// 激活码public MailUtil(String email, String code) {this.email = email;this.code = code;}public void run(String subject, String content) {// 创建连接对象javax.mail.Session// 创建邮件对象 javax.mail.Message// 发送一封激活邮件String sender = mailConfig.getSender();// 发件人电子邮箱String host = mailConfig.getHost(); // 指定发送邮件的主机smtp.qq.com(QQ)|smtp.163.com(网易)Properties properties = System.getProperties();// 获取系统属性properties.setProperty(mailConfig.getMailService(), host);// 设置邮件服务器properties.setProperty(mailConfig.getAuth(), "true");// 打开认证try {// QQ邮箱需要下面这段代码,163邮箱不需要MailSSLSocketFactory sf = new MailSSLSocketFactory();sf.setTrustAllHosts(true);properties.put(mailConfig.getSslEnable(), "true");properties.put(mailConfig.getSslSocketFactory(), sf);// 获取默认session对象Session session = Session.getDefaultInstance(properties, new Authenticator() {public PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(sender, mailConfig.getCode()); // 发件人邮箱账号、授权码}});// 创建邮件对象Message message = new MimeMessage(session);// 设置发件人message.setFrom(new InternetAddress(sender));// 设置接收人message.addRecipient(Message.RecipientType.TO, new InternetAddress(email));// 设置邮件主题message.setSubject(subject);// 设置邮件内容message.setContent(content, "text/html;charset=UTF-8");// 发送邮件Transport.send(message);System.out.println("邮件成功发送!");} catch (Exception e) {e.printStackTrace();}}
}
五、调用发送邮件

MailUtil mailUtil=new MailUtil(email.getS(),code.getS());
mailUtil构造中两个参数分别为:收件人邮箱(用户邮箱)、随机code验证码(uuid)。

效果图如下:

温馨提示:成功了别忘记给楼主小姐姐点个 哇哈哈哈哈哈哈。

附:uuid生成

UUID uuid = UUID.randomUUID();
String str = uuid.toString();
String uuidStr = str.replace("-", "");

java实现用户注册邮箱激活验证相关推荐

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

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

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

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

  3. Java案例-用户注册邮箱验证将邮箱激活码存入redis功能实现

    <–start–> 用户注册时,要求用户填写注册邮箱,然后后台向用户的注册邮箱中发送绑定邮件,并将激活码保存到redis中. 手机短信验证码因为时效期短,只需要将短信验证码存储到sessi ...

  4. java用户注册邮箱激活

    电子邮件的应用非常广泛,例如在某网站注册了一个账户,自动发送一封欢迎邮件,通过邮件找回密码,自动批量发送活动信息等.但这些应用不可能和我们自己平时发邮件一样,先打开浏览器,登录邮箱,创建邮件再发送.本 ...

  5. Java案例-用户注册邮箱绑定激活功能实现

    <–start–> 需求描述:当客户打开收到邮箱激活码的邮件,点击激活链接,正确填写激活码后就会完成邮箱激活的步骤. 在后台编程代码编写中,有以下几个要点: ① 接收客户的手机号码和邮箱激 ...

  6. Laravel 5.7用户注册邮箱激活的功能演示

    邮箱验证与激活,可以说是现在web app里的必备功能了,在laravel 5.7以前的版本,你得自行实现这个功能,从5.7开始,开箱即有此功能了.这里我们就演示一下,如何在用户注册了以后,自动发送一 ...

  7. Java实现QQ邮箱验证激活 Java简单发送邮箱

    Java简单发送邮箱 1.首先要去qq邮箱 设置–账户–把所有服务都开启 (记住其中任意一个授权码就OK了) 如下图: 2. 导入jar包 创建测试类 (复制即可) 如下: package testE ...

  8. java web 邮箱激活 与 忘记密码(重置密码)

    推荐: java后台通用权限管理系统(springboot)(https://blog.csdn.net/zwx19921215/article/details/97806078) 推荐:java 个 ...

  9. springboot前后端分离,邮箱/手机验证号激活和登录,手机注册和激活

    @TOC 1.父项目 1.1.依赖 2.前端项目 2.1.依赖 <?xml version="1.0" encoding="UTF-8"?> < ...

最新文章

  1. postman python request_postman自动化实战总结
  2. VMProtect 与 ASProtect 在VC中的SDK编程
  3. java 根据详细地址提取小区_Java分析/测试工具EJ Technologies JProfiler介绍及安装教程...
  4. 四.MongoDB 概念解析
  5. 【机器学习】半监督学习
  6. PMCAFF微课堂 | 前YY产品总监深度揭秘P2P运营推广精髓
  7. typeset的常见用法
  8. 自己动手写CPU(8)加载存储指令的实现
  9. 如何将Word与Endnote再次相互关联?
  10. C#设计模式之19-观察者模式
  11. Hibernate学习笔记--映射配置文件详解
  12. 搭载MIUI for Watch,支持eSIM独立通话!小米手表首发1299元起
  13. 如何根据参数类型重载__init__方法?
  14. Gstreamer应用g_signal_new/g_signal_connect/g_signal_emit总结(十二)
  15. 手动修改Icon图标的颜色深度(张佩)
  16. 鞋城模板+html,西安锦绣鞋城整合营销策划方案
  17. html cat文本,网页管理好管家CatHtml
  18. 微信删除和拉黑哪个更绝情?
  19. Java - System.setOut() 与 System.setIn()
  20. 计算机毕业设计JAVA家庭饮用水监测系统mybatis+源码+调试部署+系统+数据库+lw

热门文章

  1. 由于Redis后门漏洞导致服务器被注入挖矿脚本解决过程
  2. 有限元缺陷:剪切锁死
  3. 关于Cere在Republic平台公开发售
  4. 汇编语言第四版(王爽)实验四答案
  5. 计算机研究生复试-排序问题
  6. 移动手机版网页模板集合
  7. js中indexOf()的使用
  8. PDF文件转换成Excel表格怎么转?
  9. 【接口百宝箱】免费好用的API大全
  10. tensorflower delegate介绍