Java通过邮件发送验证码和通过手机号发送验证码

前提:我将验证码存入了map集合,进行验证。
private static HashMap<String, Integer> emailMap = new HashMap<>();

一、通过邮箱发送验证码:

1、准备条件:引入hutool依赖,

 <!--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、手写代码。

 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工具,你需要引入其架包,上边邮件里边有架包)

 /**
     * 手机验证码
     *
     * @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;
    }
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值