本文介绍如何引用第三方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());
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。