国内发送邮箱验证码的应用 -- ByAoKSend第三方

本文介绍如何引用第三方API AoKSend来进行发送邮箱验证码
参考:
https://www.aoksend.com/doc/?id=84

首先第一步。在aokSend注册账号。


第二步,充钱(可以zfb)购买邮件数,我买的是5W封。


在这里插入图片描述

第三步:

添加并配置发信域名:通常以mail + 域名开始
在这里插入图片描述

填写有关的发件人信息
在这里插入图片描述
进行DNS解析:(作者采用的是阿里云DNS解析)
在这里插入图片描述
点击齿轮图标会弹出需要进行配置的,有txt记录,mx记录,a记录等,我们在阿里云进行解析
在这里插入图片描述

在这里插入图片描述

第四步:

建立发信邮箱
在发信域名成功建立并通过审核后新建填写相关信息即可
在这里插入图片描述

第五步:

建立邮件内容模板
在这里插入图片描述
这里的{{}}变量是我们程序生成填充的内容。下面会有讲述。
在这里插入图片描述

第六步

在发信域名、邮箱成功建立,成功建立邮件内容模板后。
先记得保存一下自己的app_id (key) 和 内容模板id(key)
在这里插入图片描述

最后一步:程序接入

引入依赖:

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.13</version> <!-- 确保使用最新版本 -->
</dependency>
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpcore</artifactId>
    <version>4.4.14</version> <!-- 确保使用最新版本 -->
</dependency>
<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.15</version> 
</dependency>

实际JAVA代码:

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
private static final String API_URL ="https://www.aoksend.com/index/api/send_email";
@RequestMapping("/getEmail")
public Result getEmail(String email){
    try{
        //TODO 邮箱校验
        if(StringUtils.isEmpty(email)){
            return Result.fail("请填写邮箱");
        }
        CloseableHttpClient httpClient = HttpClients.createDefault();
        // 创建一个HttpPost实例
        HttpPost httpPost = new HttpPost(API_URL);
        // 创建一个参数列表
        List<NameValuePair> params = new ArrayList<>();
       
        //发信邮箱的key
        params.add(new BasicNameValuePair("app_key", ""));

     
        //邮件模板id
        params.add(new BasicNameValuePair("template_id", ""));

        params.add(new BasicNameValuePair("to", email));
        //params.add(new BasicNameValuePair("reply_to", ""));
        //params.add(new BasicNameValuePair("alias", ""));
        EmailSendDto emailSendDto = new EmailSendDto();
        //生成6位随机数
        String checkCode =  ((int)((Math.random()*9+1)*10000)) + "";
        emailSendDto.setCheckCode(checkCode);
        // 获取当前日期
        LocalDate currentDate = LocalDate.now();
        // 定义日期格式
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        // 将日期格式化为字符串
        String formattedDate = currentDate.format(formatter);
        emailSendDto.setNowDate(formattedDate);
        params.add(new BasicNameValuePair("data", JSON.toJSONString(emailSendDto)));
        UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(params, "UTF-8");
        httpPost.setEntity(formEntity);
        // 发送请求并获取响应
        HttpResponse response = httpClient.execute(httpPost);
        // 读取响应内容
        HttpEntity responseEntity = response.getEntity();
        if (responseEntity != null) {
            String responseBody = EntityUtils.toString(responseEntity, "UTF-8");
          
            //存入redis
            //redisHandler.set(email,checkCode,180);
            return Result.ok(responseBody);
        }
        return Result.fail("验证码获取失败");
    }catch (Exception e){
        return Result.fail(e.getMessage());
    }
}

有疑问可以加vx进行提问:
在这里插入图片描述
或者移步到贵群提问:
开发技术

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值