前提:我将验证码存入了map集合,进行验证。
java">private static HashMap<String, Integer> emailMap = new HashMap<>();
一、通过邮箱发送验证码:
1、准备条件:引入hutool依赖,
java"> <!--hutool--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.16</version></dependency><!--发送邮件--><dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.6.2</version></dependency>
2、准备一个阿里云邮箱。
注册链接
3、手写代码。
java"> public Integer sendCode(String email) { //参数为你接受邮件的邮箱地址//发送email验证码MailAccount account = new MailAccount();account.setHost("smtp.aliyun.com"); //阿里云的邮箱服务器地址account.setPort(465); //端口号account.setAuth(true);account.setSslEnable(true);account.setUser("你自己的阿里云邮箱");account.setPass("密码");account.setFrom("你自己的阿里云邮箱");int code = RandomUtil.randomInt(1000, 10000);emailMap.put("email", code);MailUtil.send(account, email, "测试", "邮件来自scl测试:" + code, false);return 0;}
二、手机号发送验证码
1、开通阿里云的短信功能。
链接: 【短信验证码-快速自定义签名】三网短信接口-短信-数字藏品短信-三网短信接口验证码-短信验证码-短信【最新版】_商业智能_电商_金融-云市场-阿里云
2、查找你自己的AppCode
3、编写代码(这里也用到了hutool工具,你需要引入其架包,上边邮件里边有架包)
java"> /*** 手机验证码** @param tel* @return*/public Integer sendTelCode(String tel) {String url = "https://dfsns.market.alicloudapi.com/data/send_sms";String appcode = "你自己的appcode";int code = RandomUtil.randomInt(1000, 10000); //验证码emailMap.put("tel", code);String result = HttpRequest.post(url).header("Authorization", "APPCODE " + appcode)//头信息,多个头信息多次调用此方法即可.body("content=code:" + code + "&template_id=TPL_0000&phone_number=" + tel).execute().body();JSONObject object = JSONUtil.parseObj(result);if (!object.get("status").equals("OK")) {log.error("发送验证码错误:{}", object.get("reason"));throw new BizException(404, "发送验证码错误");}return 0;}