引子
初步实现通过qq邮箱发送验证码的功能,可结合其他技术和自身需求对代码进行扩展。
第一步:在qq邮箱中开启SMTP服务,获取授权码
-
往下翻:
-
点击开启并完成相应安全验证后会给你一串授权码,后面需要用到
第二步:创建maven或spring工程,导入如下坐标
<!--QQ邮箱验证码所需jar包-->
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.4</version>
</dependency>
第三步:创建邮箱工具类,写入如下方法
/**
* 发送邮件代码
* @param targetEmail 目标邮箱
* @param authCode 验证码
*/
public void sendEmailCode(String targetEmail, String authCode) {
try {
SimpleEmail mail = new SimpleEmail();
// 发送邮件的服务器
mail.setHostName("smtp.qq.com");
// 刚刚记录的授权码,是开启SMTP的密码
mail.setAuthentication("邮箱号", "授权码");
// 发送邮件的邮箱和发件人
mail.setFrom("邮箱号", "用户名");
// 使用安全链接
mail.setSSLOnConnect(true);
// 接收人的邮箱
mail.addTo(targetEmail);
// 邮件的主题(标题)
mail.setSubject("注册验证码");
// 邮件的内容
mail.setMsg("验证码为:" + authCode);
// 发送
mail.send();
} catch (EmailException e) {
e.printStackTrace();
}
}
第四步:在web项目中调用
@RestController
public class SendMail {
@PostMapping("/getCode")
@ResponseBody
public String mail(@RequestParam("targetEmail") String targetEmail) {
//生成六位数验证码
String authCode = String.valueOf(new Random().nextInt(899999) + 100000);
SendMailUtil.sendEmailCode(targetEmail, "你的验证码为" + authCode + "(五分钟内有效)");
return "ok";
}
}
第五步:在postman中测试功能
- 测试成功
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/82600.html