邮箱验证码发送及验证

邮箱验证码发送及验证

代码简化,有需求可以联系

成果展示图

//获取验证码
邮箱验证码发送及验证_第1张图片
//接收图
在这里插入图片描述

配置


			org.springframework.boot
			spring-boot-starter-mail

spring.mail.host=smtp.qq.com
[email protected]//发送者邮箱
spring.mail.password=xkzoexejzkylbgah//发送者邮箱授权值
spring.mail.default-encoding=utf-8

spring.mail.password的取值方法
根据如图片操作–
在这里插入图片描述
邮箱验证码发送及验证_第2张图片
邮箱验证码发送及验证_第3张图片

服务层

接口

public interface EmailService {
    /**
     * toEmail 接收验证码的邮箱
     * text 主题
     * message 主体信息
     * */
    public boolean sendEmail(String toEmail, String text, String message);
}

实现类

@Service
public class EmailServiceImpl implements EmailService{

    @Resource
    private JavaMailSender javaMailSender;
    @Value("${spring.mail.username}")
    private String fromEmail;
    @Override
    public boolean sendEmail(String toEmail, String text, String message) {
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        //设置发件邮箱
        simpleMailMessage.setFrom(fromEmail);
        //收件人邮箱
        simpleMailMessage.setTo(toEmail);
        //主题标题
        simpleMailMessage.setSubject(text);
        //信息内容
        simpleMailMessage.setText(message);
        //执行发送
        try {//发送可能失败
            javaMailSender.send(simpleMailMessage);
            //没有异常返回true,表示发送成功
            return true;
        } catch (Exception e) {
            //发送失败,返回false
            return false;
        }
    }
}

控制层

//发送到邮箱验证码 --获取验证码

	@Resource
    private EmailService emailService;
    @ResponseBody
    @RequestMapping("getEmailCode")
    //通过httpsession来存入验证码值
    public String getEmail(String toEmail,HttpSession httpSession){
        Random random = new Random();
        //生成随机验证码
        int code=1000+random.nextInt(8999);
        //把验证码存储到session中
        httpSession.setAttribute("code", code);
        //执行发送验证码
        if(emailService.sendEmail(toEmail, "验证码","欢迎注册,您的验证码为:"+code)) {
            return "获取成功";
        }
        return "获取失败";
    }

//邮箱接收到的验证码与输入的验证码进行比较

@RequestMapping("checkEmailCode")
 @ResponseBody
 public String checkEmailCode(String code,HttpSession httpSession) {
  String emailCode = httpSession.getAttribute("code").toString();
  if(emailCode!=null) {
   if(emailCode.equals(code)) {
    return "校验成功";
   }
  }
  return "校验失败";
 }

前端

//输入框–按钮

<input name="name" type="text" placeholder="邮箱" id="usernameid" />
<input name="code" type="text" placeholder="邮箱" id="codeid" />

<input type="button" id="btn-get" value="获取验证码" onclick="doGetEmailCode()" />
<input type="button" id="btn-compare" value="验证验证码" onclick="doCompareEmailCode()" />

//发送验证码

function doGetEmailCode() {
   var email = $("#usernameid").val();//获取接收验证码的邮箱
   var url = "getEmailCode?toEmail=" + email;//地址与邮箱拼接
   $.get(url, function(result) {
    console.log("result", result); 
    });
} 

//验证验证码

function doCompareEmailCode() {
	var codeid = $("#codeid").val();
	var url = "checkEmailCode?code=" + codeid;
    $.get(url, function(result) {
    console.log(result);
    });
}

你可能感兴趣的:(Java)